Проверить программу на наличие ошибок - Pascal
Формулировка задачи:
Дано натуральное число n и целые числа a,a1,...an где n<=1000.Если в последовательности a1...an есть хотя бы один член,равный q,то получить сумму всех членов,следующих за первым таким членом,в противном случае ответом должно служить количество отрицательных элементов
program my1;
var i,j,kd,n,s,q:integer;
a:array[1..100] of integer;
BEGIN
writeln('vvod n');
readln(n);
writeln('vvod q');
readln(q);
randomize;
kol:=0
s:=0
BEGIN
for i:=1 to n do
a[i]:=random(150)-random(50);
for i:=1 to n do
if(a[i]=q)then
Begin for j:=i+1 to n do
s:=s+a {j];
writeln('s=',s');
readln;
end
else
for i:=1 to n do Begin
if(a[i]<0) then
kol:=kol+1;
writeln('kol',kol);
end;
readln;
end;
END.Решение задачи: «Проверить программу на наличие ошибок»
textual
Листинг программы
program my1;
uses crt;
var i,j,kol,n,s,q:integer;
a:array[1..1000] of integer;
BEGIN
clrscr;
write('n=');
read(n);
write('q=');
read(q);
randomize;
kol:=0;
s:=0;
BEGIN
for i:=1 to n do
begin
a[i]:=random(150)-random(50);
write(a[i],' ');
end;
writeln;
for i:=1 to n do
if(a[i]=q)then
Begin
for j:=i+1 to n do
s:=s+a[j];
writeln('s=',s);
end
else
for i:=1 to n do
Begin
if(a[i]<0) then
kol:=kol+1;
end;
writeln('kol=',kol);
end;
readkey;
END.
Объяснение кода листинга программы
- Создается программа
my1. - Используются стандартные библиотеки
crt. - Объявляются переменные
i,j,kol,n,s,qиa. - Переменная
aпредставляет собой массив целых чисел размером 1000. - Выводится сообщение
n=, затем считывается значение переменнойnс помощью функцииread(). - Выводится сообщение
q=, затем считывается значение переменнойqс помощью функцииread(). - Вызывается функция
randomize(), чтобы инициализировать генератор случайных чисел. - Объявляется переменная
kolи присваивается ей значение 0. - Объявляется переменная
sи присваивается ей значение 0. - Запускается цикл
for, который выполняетсяnраз. - Внутри цикла вычисляется случайное число от 150 до 50 и присваивается переменной
a[i]. - Выводится значение
a[i]с пробелом после него. - Если значение
a[i]равно значениюq, то запускается вложенный циклfor, который суммирует значения всех элементов массиваaотi+1доn. - Значение переменной
sобновляется с помощью функцииwriteln()и выводится на экран. - Если значение
a[i]меньше нуля, то значение переменнойkolувеличивается на 1. - Цикл
forзавершается. - Выводится значение переменной
kolс помощью функцииwriteln(). - Вызывается функция
readkey(), чтобы дождаться нажатия клавиши перед завершением программы.