Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.03.2019
Сообщений: 7

Проверка правильности введённых данных

05.03.2019, 21:57. Показов 1886. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть задача:

Напишите программу, которая определяет, имеется ли среди введенных с
клавиатуры чисел, а и b – лежащие в диапазоне [x..y].

И вот моё решение:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program n2;
var
a,b,x,y: integer;
begin
repeat
writeln ('Введите диапазон x,y (сначала x, затем y)');
readln (x,y);
if x<=y then begin
writeln ('Введите значение а');
readln (a);
writeln ('Введите значение b');
readln (b);
             if (a>=x) and (a<=y)
               then if (b>=x) and (b<=y)
                      then writeln ('a и b в находятся диапазоне x y')
                      else writeln ('a находится в диапазоне x y')
               else if (b>=x) and (b<=y)
                      then writeln ('b находится в диапазоне x y')
                      else writeln ('a и b не находятся в диапазоне x y')
                      end
        else writeln ('Вводите диапазон так, чтобы x<=y');
until x<y;
end.
Но, преподавателю не нравится, вот, что она пишет: "если x>y, то нужно не просто выдавать сообщение, а переприсвоить эти значения ДЛЯ ЭТОГО ЦИКЛ ЗАДЕЙСТВОВАТЬ НЕ НУЖНО"

А без цикла я не могу додуматься, как сделать
Поэтому прошу помощи, научите, объясните, пожалуйста!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2019, 21:57
Ответы с готовыми решениями:

Проверка правильности введённой даты
Помогите пожалуйста) Составьте программу для решения указанной задачи Дана дата в формате «дд.мм.гггг» (где «дд» – число, «мм» – номер...

Проверка правильности расстановки скобок
Преподаватель поставила сегодня в тупик вопросом. Как с помощью оператора выбора Case проверить правильность расстановки скобок ? ...

Чтение с клавиатуры логического выражения и проверка его правильности
как сделать: Чтение с клавы логического выражения и проверка его правельности, используя логические символы &gt;,&lt;,=,-,+,Х,У.

4
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
05.03.2019, 23:21
Так а зачем вы возвращаетесь в начало программы. Вам же только 1 раз нужно проверить, разве нет?
0
0 / 0 / 0
Регистрация: 05.03.2019
Сообщений: 7
06.03.2019, 08:24  [ТС]
А как мне иначе сделать? Мне ведь нужно проверить именно x и y на правильность введенного диапазона, а если диапазон не верен, то задать этот диапазон заново и затем продолжить выполнение программы
0
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
06.03.2019, 09:43
Лучший ответ Сообщение было отмечено tvoimarik как решение

Решение

Можно считать, что диапазон всегда верен, но, может быть, перепутаны границы. Тогда цикл не нужен.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var
  a, b, x, y, t: integer;
 
begin
  write('Введите диапазон x, y: ');
  readln(x, y);
  if x > y then
    begin
      t := x;
      x := y;
      y := t
    end;
  write('а = ');
  readln(a);
  write('b = ');
  readln(b);
  if (a >= x) and (a <= y)
    then if (b >= x) and (b <= y)
      then writeln('a и b находятся в диапазоне x y')
      else writeln('a находится в диапазоне x y')
    else if (b >= x) and (b <= y)
      then writeln('b находится в диапазоне x y')
      else writeln('a и b не находятся в диапазоне x y')
end.
Вариант:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const
  m: array[0..3] of string[34] = (
    'a и b не находятся в диапазоне x y',
    'a находится в диапазоне x y',
    'b находится в диапазоне x y',
    'a и b находятся в диапазоне x y');
 
var
  a, b, x, y, t: integer;
 
begin
  write('Введите диапазон x, y: ');
  readln(x, y);
  if x > y then
    begin
      t := x;
      x := y;
      y := t
    end;
  write('а = ');
  readln(a);
  write('b = ');
  readln(b);
  if (a >= x) and (a <= y) then t := 1 else t := 0;
  if (b >= x) and (b <= y) then t := t + 2;
  writeln(m[t])
end.
1
0 / 0 / 0
Регистрация: 05.03.2019
Сообщений: 7
06.03.2019, 20:17  [ТС]
Спасибо за решение, я всё понял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2019, 20:17
Помогаю со студенческими работами здесь

Проверка количества введенных трехзначных чисел
Господа, прошу еще помощи! Задача: В компьютер вводится N вещественных чисел. Составить программу, выводящую на экран количество...

Проверка правильности введенных данных
Добрый день! Имеется лаба: Задача 3.1. Создайте сайт из двух страниц.Первая страница имеет заголовок Заказ мебели. На ней расположены два...

Проверка правильности введенных данных в ячейке DataGridView?
Здавствуйте, уважаемые! Как осуществить проверку на предмет того, было ли правильно введено значение в ячейку? Формат ячейки - дата. Я...

Проверка правильности введённых данных в StringGrid (C++ Builder)
Ребят, немного туго понимаю работу со строками и посимвольной проверкой... Пользователь вводит число в ячейку StringGrid, нажимает...

Проверка правильности введенных фамилий и имен
Здравствуйте)Помогите пожалуйста решить небольшую задачу. Создайте страницу Web-приложения, выполняющего проверку правильности введенных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru