Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите доделать задачку,совсем мелочь

Автор: la_puce 24.12.2007 3:55

Добрый вечер всем.У меня возникла такая проблема...Не могу до конца решить задачу:дана последовательность чисел a1,a2,..a50Получить сумму членов ai данной последовательности,которые
1)кратные 5
2)Нечётный и отрицательные
3) удовлетворяют условию |ai|<i в квадрате...
Сумму вывести на печать и числа её образующие.
Прогу всю сделал вот только не поучается вывести числа которые образуют сумму помогите пож.
Вот мой код

uses
crt;
var
a:array[1..50] of integer;
i,n,z:integer;
begin
clrscr;
writeln;
writeln('----------------------------------------');
writeln('vvedite posledovatelnost chisel');
writeln('posle vvoda kazhdogo chisla nazhmi enter');
writeln('----------------------------------------');
for i:=1 to 50 do begin
begin
writeln('a[',i,'] ');
readln(a[i]);
z:=a[i] mod 5;
if z=0 then
z:=a[i] mod 2;
if z<0 then
if abs(a[i])<sqr(i) then begin
writeln(a[i],' ');
N:=N+a[i];
end;
end;
end;
writeln('-----------------------------------------');
write('Summa chlenov novoi posledovatelnosti ravna'',',n);
writeln('-----------------------------------------');
readln;
end.




Прикрепленные файлы
Прикрепленный файл  2LABA_PO.PAS ( 762 байт ) Кол-во скачиваний: 242

Автор: Feagor 24.12.2007 15:34

Я так понял, тебе попунктно надо все это выводить

Цитата

1)кратные 5
2)Нечётный и отрицательные
3) удовлетворяют условию |ai|<i в квадрате...

А ты все это делаешь в одной куче...

Проверяй по одному условию, если число из последовательности проходит по условию, сразу выталкивай его на печать, а сумму увеличивай

Добавлено через 16 мин.

uses
crt;
var
a:array[1..50] of integer;
i,n,z:integer;
begin
clrscr;
writeln;
writeln('----------------------------------------');
writeln('vvedite posledovatelnost chisel');
writeln('posle vvoda kazhdogo chisla nazhmi enter');
writeln('----------------------------------------');
for i:=1 to 50 do
begin
writeln('a[',i,'] ');
readln(a[i]);
end;
for i:=1 to 50 do if (a[i] mod 5)=0 then
begin
n:=n+a[i];
write(a[i],' ');
end;
writeln('s1=',n);
n:=0;
writeln;
for i:=1 to 50 do if (odd(a[i])) and (a[i]<0) then
begin
write(a[i],' ');
n:=n+a[i];
end;
writeln('s2=',n);
n:=0;
writeln;
for i:=1 to 50 do if abs(a[i])<sqr(i) then
begin
write(a[i],' ');
n:=n+a[i];
end;
writeln('s3=',n);
readkey;
end.