…Для каждой строки двумерного массива, которая начинается с отриц эл., подсчитать произведение эл, сохранить их в одном массиве и вывести на экран.
Вот программма:
program obr_po_str;
const n=3; m=4;
var a:array[1..n,1..m] of integer; b:array[1..m] of integer;
i,j:1..m; p,k:integer;
Begin
randomize;
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(n*m)-5;
writeln('исх мас ');
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j]:4);
writeln; end;
for i:=1 to n do
begin p:=1;
for j:=1 to m do
if a[i,1]<0 then p:=p*a[i,j]; k:=k+1;
b[i]:=p
end;
writeln('получ мас');
for i:=1 to k do
write(b[i],' ');
readln
End.
считает вроди правильно, но вот если отриц эл. нет в строке, то произведение он считает Р=1
и в одномерном массиве выводит вместо пустой ячейки, цифру 1.
25,1,-6,4 адолжен25,-6,4
что не так в проге?
12 января 2009 в 11:05
Написать программу, осуществляющую поиск заданного множества ключевых слов в текстовом файле. Результатом работы программы должен быть список найденных слов и номера позиций этих слов в тексте. Символ новой строки не учитывать при подсчете позиции слова.
Использовать теории регулярных выражений и конечных автоматов:
1) Упростить,если можно, регулярное выражение.
2) Для заданного регулярного выражения (РГ) построить соответствующую ему КА. Представление – диаграмма.
3) Если автомат, полученный в 2) недетерминированный, то преобразовать его в ДКА, используя метод"ленивого" вычисления подмножеств.
4)Если это удобно, переобозначить состояния полученного ДКА.
5) Используя ДКА написать программу поиска ключевых слов в текстовом файле.
First, for, gamma
11 января 2009 в 15:05
Спасибо всё правильно
10 января 2009 в 1:03
по-моему такой треугольник только один… 6 8 10, дальше разность между S и P всё хуже и хуже….
если уж надо код то
var
a,b,c,i:longint;
BEGIN
a:=0;b:=0;c:=0;
for i:=1 to 10000 do
begin
inc(a,3);inc(b,4);inc(c,5);
if (a*b div 2=a+b+c) then writeln(a,' ',b,' ',c);
end;
END.
3 января 2009 в 20:02
вообщем главное условие "if ((a*b)/2 = a+b+c) and (c=sqrt(sqr(a)+sqr(b)) 'а далее твори что хочешь…
3 января 2009 в 19:04
а какие ограничения по целым числам?
20 октября 2008 в 16:01
найти все прямоугольные треугольники, длины сторон которых являются целыми числами,а периметрчисленно равен площади
Напишите прогу на паскале,пожайлуста
30 сентября 2008 в 11:00
Некрофилия?
информатика =ин форма тика=ин формат ика
String s="информатика";
String ss1=s.SubString(3,5);
String ss2=s.SubString(3,6);
14 сентября 2008 в 19:01
А вот моя задача оч лёгкя, но всё-равно ответте:со слова информатика составить слова форма,формат.Зарание спасибо.
1 марта 2008 в 15:02
Спасибо вам!!! и РЕСПЕКТ!!!
В итоге полчилась вот такая прога
program obr_po_str;
const n=3; m=4;
var a:array[1..n,1..m] of integer; b:array[1..m] of integer;
i,j:1..m; p,k:integer;
Begin
randomize;
…for i:=1 to n do
….for j:=1 to m do
……a[i,j]:=random(n*m)-5;
…..writeln('исх мас');
……for i:=1 to n do begin
……for j:=1 to m do
…….write(a[i,j]:4);
…….. writeln; end; k:=0;
……….for i:=1 to n do
……………begin
…………..if a[i,1]<0 then begin p:=1;
……………. for j:=1 to m do
……………..p:=p*a[i,j]; k:=k+1;
…………….. b[k]:=p
……………….end; end;
……. writeln('получ мас');
…….for k:=1 to k do
……. write(b[k],' ');
readln
End.
1 марта 2008 в 14:05
объявляешь ты b как массив 1..m, а крутишь от 1 до n.
тебя спасает сейчас только то, что m у тебя больше n.
кусок:
……….for i:=1 to n do
……….begin
………………..p:=1;
………………..for j:=1 to m do
…………………………if a[i,1]<0 then
………………………………….p:=p*a[i,j];
………………..k:=k+1;
………………..b[i]:=p
……….end;
отсюда и косяки.
интересно, как у тебя выполняется программа, когда ты нигде не присваиваешь начального значения для k? но я уже не помню паскаль.
попробуй заменить кусок выше на кусок ниже. компилятора под рукой нет. поэтому за работоспособность не ручаюсь.
……….k:=0;
……….for i:=1 to n do
……….begin
………………..if a[i,1]<0 then
………………..begin
…………………………p:=1;
…………………………for j:=1 to m do
………………………………….p:=p*a[i,j];
…………………………k:=k+1;
…………………………b[k]:=p;
………………..end;
……….end;
1 марта 2008 в 14:04
Вот мой вариант решения. У меня всё работает. Разберись, посмотри…
Program ExOneProg;
Uses CRT;
var
massiv_1:array[1..n,1..m] of Longint; {исходный массив}
massiv_2:array[1..5] of Longint;
P:Longint; {произведение}
i,j,k:Integer;
begin
……….ClrScr;
……….InputMassiv;//здесь подразумевается заполнение массива
………. k:=0;
……….For i:=1 to n do
………………..if massiv_1[i,1]<0 then
………………………..begin
………………………………….P:=1;
………………………………….For j:=1 to m do P:=massiv_1[i,j]*P;
………………………………….k:=k+1;
………………………………….massiv_2[k]:=P;
………………………..end;
………………..For k:=1 to k do WriteLn('massiv_2 = ',massiv_2[k]);
ReadLn;
end.