Остановите бесконечный 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.

Объяснение кода листинга программы

Список элементов кода:

  1. Объявление переменных и массивов.
  2. Заполнение массива a значениями с клавиатуры.
  3. Вывод содержимого массива a.
  4. Ввод количества элементов для массива b.
  5. Заполнение массива b значениями, используя формулу (i-1)/2)*(a[i-1]+2)/a[i-1].
  6. Вывод содержимого массива b.
  7. Ввод значения переменной k с клавиатуры.
  8. Цикл while для проверки условия b[i]>k и выхода из цикла при его выполнении.
  9. Вывод сообщения, если значение k не найдено в массиве b.
  10. Проверка условия i=n, и вывод сообщения, если оно выполняется.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5
Похожие ответы