Остановите бесконечный while - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Проблема такова: С помощью цикла while я вывожу нужные мне значения, но проблема в том, что он выводит их Бесконечное число раз, а мне нужно только 1 раз вывести. Как это сделать? Через цикл for я не знаю как именно в данном случае сделать...Вот вам пример кода на c++, код рабочий, но в pascal я редко программирую...Не смог написать на pascal через for, потому что в c++ мы типа не учитывали нач. условие в этом месте => (;i<n; i++) , а в pascal я не знаю как так сделать
Листинг программы
  1. cout<<"Введите любое число с клавиатуры: ";
  2. cin>>k;
  3. int i=0;
  4. for(;i<n; i++){
  5. if (b[i]>k){
  6. cout<<"b["<<i<<"]="<<b[i]<<">"<<k<<endl;
  7. break;
  8. }
  9. }
  10. if (i==n)
  11. cout<<"В массиве нет чисел превышающих "<<k<<endl;
  12. return 0;
Листинг программы
  1. write('Vvedite chislo s claviaturi: ');
  2. read(k);
  3. while i<=n do begin
  4. if (b[i]>k) then
  5. writeln('b[',i,']=',b[i],'>',k);
  6. end;
  7. if (i=n) then
  8. write('V massive net chisel bolshe ', k);

Решение задачи: «Остановите бесконечный while»

textual
Листинг программы
  1. program Project1;
  2. uses crt;
  3. var n, i: integer;
  4.  a: array[1..10] of double;
  5.    b: array[1..10] of double;
  6.    k: double;
  7.  
  8. begin
  9.   writeln('Zapalni massiv');
  10.   for i:=1 to 10 do
  11.   read(a[i]);
  12.  
  13.   writeln('Vash Massiv: ');
  14.   for i:=1 to 10 do
  15.   begin
  16.   a[1]:=1;
  17.   writeln(a[i]);
  18.   end;
  19.  
  20.   write('Vvedite MAX kol-vo  elementov: ');
  21.   read(n);
  22.   for i:=2 to n do
  23.   begin
  24.     b[i]:=((i-1)/2)*(a[i-1]+2)/a[i-1];
  25.     writeln('b[', i-1, ']=', b[i]);
  26.   end;
  27.  
  28.   write('Vvedite chislo s claviaturi: ');
  29.   read(k);
  30.   i:=0;
  31.   while i<=n do
  32.  begin
  33.     if (b[i]>k) then
  34.     begin
  35.     writeln('b[',i,']=',b[i],'>',k);
  36.     break;
  37.     end;
  38.     i:=i+1;
  39.  end;
  40.  
  41.     if (i=n) then
  42.     write('V massive net chisel bolshe ', k);
  43.  
  44. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы