Остановите бесконечный while - Free Pascal
Формулировка задачи:
Проблема такова: С помощью цикла while я вывожу нужные мне значения, но проблема в том, что он выводит их Бесконечное число раз, а мне нужно только 1 раз вывести. Как это сделать? Через цикл for я не знаю как именно в данном случае сделать...Вот вам пример кода на c++, код рабочий, но в pascal я редко программирую...Не смог написать на pascal через for, потому что в c++ мы типа не учитывали нач. условие в этом месте => (;i<n; i++) , а в pascal я не знаю как так сделать
cout<<"Введите любое число с клавиатуры: ";
cin>>k;
int i=0;
for(;i<n; i++){
if (b[i]>k){
cout<<"b["<<i<<"]="<<b[i]<<">"<<k<<endl;
break;
}
}
if (i==n)
cout<<"В массиве нет чисел превышающих "<<k<<endl;
return 0;write('Vvedite chislo s claviaturi: ');
read(k);
while i<=n do begin
if (b[i]>k) then
writeln('b[',i,']=',b[i],'>',k);
end;
if (i=n) then
write('V massive net chisel bolshe ', k);Решение задачи: «Остановите бесконечный while»
textual
Листинг программы
program Project1;
uses crt;
var n, i: integer;
a: array[1..10] of double;
b: array[1..10] of double;
k: double;
begin
writeln('Zapalni massiv');
for i:=1 to 10 do
read(a[i]);
writeln('Vash Massiv: ');
for i:=1 to 10 do
begin
a[1]:=1;
writeln(a[i]);
end;
write('Vvedite MAX kol-vo elementov: ');
read(n);
for i:=2 to n do
begin
b[i]:=((i-1)/2)*(a[i-1]+2)/a[i-1];
writeln('b[', i-1, ']=', b[i]);
end;
write('Vvedite chislo s claviaturi: ');
read(k);
i:=0;
while i<=n do
begin
if (b[i]>k) then
begin
writeln('b[',i,']=',b[i],'>',k);
break;
end;
i:=i+1;
end;
if (i=n) then
write('V massive net chisel bolshe ', k);
end.
Объяснение кода листинга программы
Список элементов кода:
- Объявление переменных и массивов.
- Заполнение массива a значениями с клавиатуры.
- Вывод содержимого массива a.
- Ввод количества элементов для массива b.
- Заполнение массива b значениями, используя формулу (i-1)/2)*(a[i-1]+2)/a[i-1].
- Вывод содержимого массива b.
- Ввод значения переменной k с клавиатуры.
- Цикл while для проверки условия b[i]>k и выхода из цикла при его выполнении.
- Вывод сообщения, если значение k не найдено в массиве b.
- Проверка условия i=n, и вывод сообщения, если оно выполняется.