Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 16.06.2012, 16:20   #1
Настюня
 
Регистрация: 16.06.2012
Сообщений: 3
Репутация: 10
Вопрос Программа работает неправильно.

Решила задачу: "Вывести элементы арифметической прогрессии в диапазоне от N до M, если известны первый элемент А и разность D".
Программа работает неправильно: не выводит самый младший элемент заданного диапазона и выводит лишний самый последний. Помогите, пожалуйста, найти ошибку в решении! (Pascal)

Код:

program w8;
uses crt;
var a,d,n,m,x,k:integer;
begin
a:=2;
d:=3;
k:=0;
writeln('vvedite diapason');
readln(n,m);
while x<=m do begin
      x:=a+d*k;
      if x>=n then writeln(k+1,' element = ',x);
      k:=k+1;
      end;
readln;
end.



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 16.06.2012 в 18:31.
Настюня вне форума   Ответить с цитированием
Старый 16.06.2012, 18:31   #2
s-andriano
Профессионал
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,230
Репутация: 563
По умолчанию

Поменяйте местами строки с вычислением икса и выводом его на печать.
s-andriano вне форума   Ответить с цитированием
Старый 16.06.2012, 18:34   #3
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,412
Репутация: 5596
По умолчанию

есть парочка "скользских" моментов в вашем решении...

но, попробуйте так:
Код:

program w8;
uses crt;
var a,d,n,m,x,k:integer;
begin
a:=2;
d:=3;
k:=1;
repeat
  writeln('vvedite diapason');
  readln(n,m);
until n<m;
x:=a; {обязательно нужно присвоить X начальное}
while x<=m do begin
      if x>=n then writeln(k,' element = ',x);
      x:=a+d*k;
      k:=k+1;
      end;
readln;
end.

Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа с интервалами неправильно работает pahanzona Общие вопросы Delphi 2 11.03.2011 17:09
почему на чужем ПК неправильно работает программа Coder01 Общие вопросы Delphi 10 24.08.2010 19:34
sscanf() неправильно работает BioS Общие вопросы C/C++ 7 06.02.2010 23:36
Неправильно работает программа из книги Абеля. bullvinkle Assembler 3 23.02.2009 11:56
Скрипт неправильно работает aleksa76 JavaScript, Ajax 4 21.05.2008 17:47


08:00.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru