Остановите бесконечный 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, и вывод сообщения, если оно выполняется.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д