Урок 25. Команды ввода и вывода информации




До сих пор мы составляли программу для исполнителя и затем смотрели, как он ее выполняет, не имея возможности вмешаться в его работу. Чтобы скорректировать его действия, надо было дождаться, пока он закончит работу по программе (или прервать ее выполнение), исправить программу и выполнить ее снова с самого начала.

В сложных программах требуется, чтобы человек, работающий с программой (он называется пользователь) мог во время работы программы ввести в нее необходимую информацию и получить ответ на экране монитора, то есть программа должна работать в диалоговом режиме.

Пользователь – человек, использующий программу в своей работе.

Диалоговая программа – программа, во время выполнения которой происходит диалог пользователя и программы с использованием операций ввода и вывода информации. Решения принимает человек, а программа выполняет всю рутинную работу.

Для организации диалога используются специальные операторы ввода и вывода. Вводить информацию можно с клавиатуры, мыши или джойстика, выводится информация на экран монитора или на принтер.

Вывод на экран

Итак, Робот научился с нашей помощью выполнять основные арифметические действия, вычислять пройденное расстояние, а представьте себе такую задачу: Известно, что на пути движения Робота вверх находится стена. Необходимо определить длину стены.


Надеюсь у вас не вызовет затруднения решить эту задачу:

алг длина

дано! Робот ниже стены

надо! вычислить длину стены

нач n

n:=0;

нц пока сверху свободно

вверх;

кц

нц пока сверху стена

вправо;

кц

влево;

нц пока сверху стена

n:=n+1;

влево;

кц

кон

Но тут нас поджидает одна маленькая неприятность. Расстояние то Робот подсчитал, а как он нам его сообщит? – ведь это число хранится только в его памяти. Для этого нам обязательно нужно добавить в алгоритм еще одну команду – «вывод». Пусть по этой команде Робот выводит нам значение переменных, имена которых перечислены после слова «вывод». То есть с помощью команды «вывод» мы получим в наше распоряжение результаты расчетов и сможем ими воспользоваться. Итак, добавим в наш алгоритм ДЛИНА после окончания цикла еще команду «вывод n» и тогда узнаем длину нашей стены. Для вывода информации служит специальное информационное табло, расположенное в верхней части экрана среды Робота.


Чтобы лучше разобраться с командой вывода, решим еще одну задачу для Робота. Робот находится где-то внутри прямоугольника из стенок. Размеры прямоугольника неизвестны. Необходимо:

1. Подсчитать длину и ширину прямоугольника.

2. Определить площадь прямоугольника.

алг площадь дано! Робот в прямоугольнике надо! найти его площадь нач A,B,S A:=0; B:=0; нц пока справа свободно вправо; кц нц пока снизу свободно вниз; кц А:=А+1; нц пока слева свободно влево; А:=А+1; кц В:=В+1; нц пока сверху свободно вверх; В:=В+1; кц S:=A*B; вывод A, B, S кон     Сначала счетчики длин сторон нулевые   Робот идет до стенки     Робот идет вдоль стены до угла   Робот находится в начальной клетке стороны   Робот идет вдоль стенки, подсчитывая ее длину   Робот находится в начальной клетке стороны Робот идет вдоль другой стенки, подсчитывая ее длину   вычисление площади прямоугольника вывод результатов

Ввод данных

Итак, теперь мы можем определять длины, площади, расстояния. Но, возможно, при решении задач нам придется вводить в память компьютера нужные нам числа, чтобы потом выполнять с ними необходимые вычисления. Для этого нам нужно научиться использовать новую команду «ввод».

ввод А +Enter Встретив в алгоритме такую команду, компьютер будет ждать, пока мы не передадим ему числовое значение (нажимая клавиши с цифрами на клавиатуре). Затем он запишет это значение в переменную А.
ввод X, Y, Z +Enter Эта команда будет выполнять ввод трех чисел. Первое введенное число запишется в переменную X, второе – в переменную Y, третье – в переменную Z.

Теперь мы сможем составить алгоритмы, которые будут работать с разными числами – теми, которые мы введем.

Например, мы можем написать универсальный алгоритм для вычисления площади прямоугольника.

алг площадь

дано! длина и ширина прямоугольника

надо! найти площадь прямоугольника

нач a, b, s

ввод a вводим длину прямоугольника

ввод b вводим ширину прямоугольника

s:=a*b; вычисляем площадь

вывод s выводим результат

кон


Задание:

24. Составить блок–схему программы для вычисления значения выражения y=х2+3х-7 по заданному с клавиатуры значению х.

 

 

25. Вовочка пошел в магазин, имея при себе x рублей. В магазине он купил себе k черных и на 2 меньше синих маркеров. Все маркеры стоят одинаково: по t рублей каждый. Сколько рублей осталось у Вовочки после покупки? Ваша программа должна запросить значения x, k, t и вывести на экран остаток средств у Вовочки. (Например, если x=200, k=5, t=20, то остаток средств = 40 рублей).

   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

       
   
 
   
 
   
 
 


26. Составьте алгоритм, выполняющий ввод значений переменных A,B,C и выводящий результаты X и Y, подсчитанные по формулам: ; .

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   

 

 



Урок 26. Продолжение

Конечно, по-настоящему научить Робота разговаривать достаточно сложно. Но заставить общаться с нами не только с помощью чисел можно. В этом нам поможет уже известная команда «вывод». Компьютеру ведь все равно, что выводить: цифры, буквы, точки, запятые. Вот и попросим его выводить слова. Так и получится видимость общения по-человечески. Если в алгоритме мы напишем строку:

вывод "Здравствуйте",

то компьютер напечатает это слово, как будто поздоровается с нами. А если напишем команду:

вывод "я готов исполнять ваши указания",

то на его экране появится эта фраза, и мы сможем ее прочитать. Таким образом, если мы хотим, чтобы компьютер печатал разные слова, то должны эти слова подставить в команду вывода, заключив их в кавычки.

алг умножение

дано! значение a, b

надо! найти произведение

нач a, b, c

вывод "введите первое число"

ввод a;

вывод "введите второе число"

ввод b;

c:=a*b;

вывод "умножив, получим", c

кон

Это простейший алгоритм для вычисления произведения двух чисел заставляет компьютер вести себя «по-человечески» - «беседовать» с тем, кто пользуется этим алгоритмом.


При выполнении этого алгоритма у нас произойдет примерно такой диалог с компьютером:

введите первое число {эти слова напечатал компьютер}

54 {это число мы напечатали на клавиатуре}

введите второе число {эти слова напечатал компьютер}

4 {это число мы набрали на клавиатуре}

умножив, получим 216 {это опять напечатал компьютер}

Обратите внимание, что в последней строчке компьютер напечатал слова, записанные в кавычках, а затем напечатал значение переменной С, которое он вычислил. Если бы при работе с этим алгоритмом мы ввели в компьютер другие числа, например 23 и 3, то и результат получился бы другим, и компьютер напечатал бы в последней строке:

умножив, получим 69

То есть в команде вывод можно указать несколько элементов через запятую. Это могут быть тексты в кавычках (они выводятся на экран без изменения), или имена переменных (на экран выводится значения этих переменных), или арифметические выражения, значения которых Робот сначала вычисляет, а только затем выводит полученное значение, то есть две команды из задачи нахождения произведения двух чисел:

c:=a*b;

вывод "умножив, получим", c

можно заменить одной:

вывод "умножив, получим", а*b.

Тогда для решения задачи достаточно объявить лишь две переменные: a и b.


Теперь решим следующую задачу:

Получена фотография с места сражения во время «Зарницы».

Белые точки – это «Северные», красные – «Южные». У кого превосходство на этом участке сражения?

Будем считать, что Робот количество в команде «Северных» хранит в переменной А, а «Южных» - в переменной В. Теперь он должен сообщить нам, на чьей стороне превосходство. Это значит, что ему надо сравнить значения переменных А и В, и в зависимости от того, какое значение больше, вывести соответствующие комментарии.

Для этого можно использовать такую последовательность команд:

если А< В то

вывод "Северные имеют численное превосходство"

иначе вывод "Южные имеют превосходство"

все

В этой записи все уже нам знакомо, кроме выражения А< В. В ней появляется операция сравнения («меньше»). Как вы, наверное, помните, после слова «если» должно стоять условие, на которое мы получаем ответы «да» или «нет».

При сравнении двух чисел мы тоже получаем ответы «да» или «нет». Значит, такое сравнение можно использовать в качестве условия. В зависимости от того, какие значения принимают переменные А и В, получатся различные ответы, и, следовательно, будут исполнены команды вывода либо после слова «то», либо после слова «иначе».


Например:

Переменные Сравнение Вывод
А=5, В=8 5<8 → «да» Северные имеют численное превосходство
А=12, В=8 12<8 → «нет» Южные имеют превосходство
А=4, В=4 4<4 → «нет» Южные имеют превосходство

На самом деле, в последнем примере численность у команд одинаковая, но наш алгоритм не учитывает такую возможность, получив ответ «нет», он выводит вторую фразу.

Обнаружить совпадение значений с помощью операции «меньше» невозможно, поэтому нам потребуются другие операции сравнения:

< меньше <= меньше или равно
> больше >= больше или равно
= равно <> не равно

Теперь, если мы хотим проверить равенство в численности команд, то можем так изменить наш алгоритм:

если А< В то

вывод "Северные имеют численное превосходство"

иначе если А=В то

вывод "команды равны по численности"

иначе вывод "Южные имеют превосходство"

все

все

Закончите программу для решения задачи «Зарница», если необходимо условия немного изменились: Необходимо определить у кого превосходство на этом участке сражения и на сколько человек?



алг Зарница

дано! место сражения

надо! определить у кого превосходство

нач а,б

а:=0;

б:=0;

нц пока снизу свободно

нц пока справа свободно

если цвет клетки=15

то а:=а+1;

все

если цвет клетки=4

то б:=б+1;

все

вправо;

кц

если цвет клетки=15

то а:=а+1;

все

если цвет клетки=4

то б:=б+1;

все

нц пока слева свободно

влево;

кц

вниз;

кц


нц пока справа свободно

если цвет клетки=15

то а:=а+1;

все

если цвет клетки=4

то б:=б+1;

все

вправо;

кц

если цвет клетки=15

то а:=а+1;

все

если цвет клетки=4

то б:=б+1;

все

   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

   
 
 
 


Сравнивая числа, Робот может выполнять достаточно сложные действия. Предположим, он должен идти вправо и закрашивать клетки на каждом третьем шаге, пока не упрется в стену.

алг узор дано! чистое поле надо! закрасить каждую третью клетку нач к к:=0 нц пока справа свободно вправо; к:=к+1; если к=3 то закрасить; к:=0 все кц кон     Это счетчик сделанных шагов Идем вправо до стены   Сделали шаг, увеличили счетчик Проверка количества сделанных шагов Закрасив клетку, считаем шаги заново  

Задание:

27. Измените, алгоритм таким образом, чтобы Робот закрашивал клетку на каждом n‑ом шаге. Значение n вводится командой «ввод» в начале работы алгоритма.

   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 


28. Представьте себе, что нам необходимо найти значение выражения, в котором присутствует деление, а вдруг введенное значение делителя будет равно 0? Каким образом Робот сможет произвести вычисления? Для проверки этого условия также необходимо использовать условие «если». Ниже приведен пример такой программы, вам необходимо написать алгоритм, который вводит значение переменных А и В, вычисляет результат по формуле и выводит его, а в случае деления на ноль выводит слова "деление на ноль!" и результат не вычисляет.

Пример программы Ваша программа
алг деление дано! два числа надо! найти их частное нач a, b, с вывод "введите делимое и делитель" ввод a, b если b=0 то вывод "на ноль делить нельзя!" иначе c:=a/b; вывод "частное", с все кон  

Итак, подводя некоторые итоги всего вышесказанного:

Правила использования оператора вывода:

1. Для вывода информации на экран монитора используется оператор вывод, после которого следует список элементов, разделенных запятыми.

2. В списке вывода можно использовать элементы трех видов:

1) текст, заключенный в кавычки, – он выводится на экран без изменений;

2) имя переменной, значение которой надо вывести на экран;

3) арифметическое выражение – Робот сначала вычислит его значение, а потом выведет результат на экран.

3. Вывод информации производится на информационном табло.

4. При использовании последовательности команд вывода, вывод каждый раз происходит на новую строку.

Правила использования оператора ввода:

1. Для ввода переменных с клавиатуры используется оператор ввод, после которого следует список элементов, разделенных запятыми.

2. В списке ввода указываются имена переменных, значение которых надо ввести с клавиатуры.

3. При использовании команды ввод, на информационном табло отображается курсор в виде прямоугольника, и дальнейшее выполнение программы задерживается до тех пор, пока пользователь не наберет на клавиатуре нужное число и не нажмет на клавишу Enter, после этого набранное число будет записано в ячейку с именем переменой, указанной в списке ввода, и выполнение программы продолжится.

4. Значения переменных вводятся последовательно через пробел в порядке их перечисления в списке ввода.

5. При использовании команды ввод n; в момент ввода пользователь может не понять, что значение какой величины требуется ввести. Такой ввод считается признаком плохого стиля программирования. Поэтому перед вводом значения переменной нужно вывести на экран подсказку – поясняющее текстовое сообщение.

Задачи:

29. Вычислить сумму температур в клетках над пластиной.

   
 
 
 

       
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
 
 
 
 
 
 
 
 
 
 
 

 

 


30. Известно, что Робот находится в верхней части простого креста из стенок. Закрасьте крест красным цветом и вычислите количество клеток в нем.

         
   
 
   
 
   
 
   
 
   
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 


31. Составьте блок–схему программы для решения следующей задачи: Робот находится в горизонтальном коридоре, выложенном из стенок. Длина коридора вам неизвестна. Ширина коридора – одна клетка. Необходимо посчитать количество клеток коридора, в которых температура отрицательна.

 

 

 

32. Известно, что Робот находится в левом верхнем углу рабочего поля. Клетки верхней строки имеют различную температуру. Найдите клетку с минимальной температурой и окрасьте ее в синий цвет. Значение самой низкой температуры вывести на экран.

Подсказка: Для решения данной задачи вам необходимо ввести переменную (назовем ее min), в которой будет храниться текущее наименьшее значение температуры. В начале программы зададим значение min равным температуре в начальной клетке, а затем, Робот, проходя по строке, будет сравнивать значение переменной min с текущим значением температуры, если оно меньше значения min, то min присвоим новое значение.

       
   
 
   
 
   
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 


33. Робот находится где-то внутри горизонтального тоннеля шириной в одну клетку. Сосчитать количество закрашенных клеток этого тоннеля.

         
   
 
   
 
   
 
   
 
   
 
   
 
   
 
   
 
 
 
 
 
 
 
 
 
 
 
 

 

 


34. Известно, что Робот находится в левом верхнем углу рабочего поля. Клетки рабочего поля имеют различную радиацию. Найти клетку с максимальной радиацией и окрасить ее в желтый цвет. Значение максимальной радиации вывести на экран.

 
 

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   
 
   
 
   



Урок 27 Самостоятельная работа

Для успешного выполнения самостоятельной работы вам необходимо уметь работать с переменными, вводить их значение с клавиатуры, выводить информацию на экран и свободно использовать в программе ветвления и цикл «Пока».

Дополнительные задания:

35. Вовочка пошел на рынок, имея при себе z рублей. На рынке он выбрал себе t простых тетрадки по цене r рублей и столько же общих тетрадок, цена которых на 10 рублей выше. Но когда продавец посчитал сумму заказа, то оказалось, что денег у Вовочки не хватает. Хорошо, что рядом оказался друг Петя, у которого Вовочка и одолжил недостающее количество рублей. Ваша программа должна запросить значения z, t, r и вывести на экран, сколько Вова занял у Пети. (Например, если z=50, t=3, r=4, то Вовочка занял у Пети 4 рубля).

   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


36. Известно, что Робот находится в левом верхнем углу границы прямоугольника, толщина линии границы – одна клетка. Подсчитать длину, ширину, площадь и периметр прямоугольника.

         
   
 
   
 
   
 
   
 
   
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 


37. Известно, что Робот находится в левом верхнем углу рабочего поля. Клетки левого столбца имеют различную радиацию. Найдите клетку с максимальной радиацией и окрасьте ее в красный цвет. Значение максимальной радиации вывести на экран.

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: