Для чего используется оператор readln без параметров
Ввод-вывод данных в Pascal
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит «работающие по-умолчанию»; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран «Введи число: » и не переводим курсор на новую строку, а ждем ввода.
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Операторы ввода read/readln
Вспомним, что основное назначение ЭВМ — сэкономить человеческий труд. Поэтому необходимо обеспечить возможность, однажды написав программу, многократно ее использовать, вводя каждый раз другие данные. Такая гибкость в языке обеспечивается операторами Read и ReadLn. Этими операторами вводится информация с клавиатуры.
Общий вид:
Read(переменная, переменная…)
ReadLn(переменная, переменная…)
При выполнении процедуры Read ожидается ввод перечисленных в скобках значений. Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди.
Например, если вводятся значения 53 и Х, то при выполнении оператора Read(a,b) переменной а будет присвоено число 53, а переменной Х — буква Х. Причем, отметим, чтобы не было аварийной ситуации, нужно правильно определить тип данных в разделе Var; в нашем случае а:integer, а b:char.
Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишурезультат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.
Примечание. Когда Вы ставите задержку экрана, обратите внимание на предыдущий ввод. Если данные запрашивались процедурой Read задержки не будет.
Решим задачу, в которой рассмотрим все возможные употребления этих процедур.
Пример: Найти среднее значение трех чисел.
Примечание. Чтобы найти среднее значение нескольких чисел, нужно сложить эти числа и сумму разделить на количество этих чисел.
Program Srednee;VarFirst, Second, Third : integer;Sum : real;BeginClrScr;Write (‘Введите первое число ‘);ReadLn(First);Write (‘Введите второе и третье числачерез пробел ‘);ReadLn(Second, Third);Sum := First + Second + Third;Sum := Sum/3;Write (‘Среднее значение ‘, First, ‘, ‘,Second, ‘ и‘, Third, ‘ равно ‘, Sum:5:2);ReadLn;End. |
Внимательно рассмотрите каждую строчку. Имя программы Srednee отражает содержание задачи. Кстати, договоримся о том, чтобы имя программы и имя файла, который содержит эту программу, совпадали. Далее идет подключение модуля Crt. В разделе Var описаны First, Second, Third как переменные целого типа, а Sum — действительного типа. Раздел операторов начинается со стандартной процедуры очистки экрана ClrScr (Clear Screen), которая находится в модуле Crt. Далее оператором Write мы выводим на экран сообщение ‘Введите первое число ‘, получив которое пользователь должен ввести число.
Теперь компьютер должен считать введенные символы и занести их в переменную First, это произойдет при выполнении следующего оператора ReadLn(First). Затем с помощью оператора Write запрашиваем значения еще двух чисел и считываем их в переменные Second и Third. Затем вычисляем их сумму и присваиваем полученное число переменной Sum. Чтобы найти среднее, нужно теперь полученное число разделить на 3 и сохранить результат в какой-либо переменной.
Совсем не обязательно описывать еще одну переменную для сохранения результата. Можно, как в нашей программе, значение переменной Sum разделить на 3 и результат опять присвоить той же переменной Sum. Теперь можно вывести результат вычислений на экран с помощью процедуры Write. И, наконец, последняя процедура ReadLn задержит наш вывод на экране до нажатия на клавишу.
При значениях переменных 5, 7 и 12, на экране увидите следующее:
Среднее значение 5, 7 и 12 равно 8.00
Оператор условия if:
if ab thenWrite(‘a больше b’)ElseWrite(‘а меньше b’); | if (если) – ключевое словоab – условиеthen (то) – ключевое слово Else (иначе) – ключевое словоЕсли переменная «а» больше переменной «b» мыувидим на экрана сообщение «а больше b», в ином случае «а меньше b» |
Цикл с предусловием while do: | |
a:=10;while ab dobegini:= i + 1;b:=i;writeln(b)end; | while do (делай… пока) – ключевые словаab – условиеbegin end – операторные скобкиЦикл будет выполняться до того момента, пока условиене будет ложным(false). При запуске, этого цикла, мы увидим на экране числа от 1 до 10. |
Цикл с пост условием repeat until: | |
a:=10;repeatbegini:= i + 1;b:=i;writeln(b)end;until a | repeat until (повторяй до тех пор пока)– ключевые словаa |
Цикл со счетчиком for do: | |
a:=10;for i:=1 to a dobeginb:=i;writeln(b)end; | for to do –ключевые словаi:=1 – начальное значениеa – конечное значениеbegin end операторные скобкиЦикл будет выполняться до того момента, покаусловие не будет ложным. На экране мы увидим числа от 1 до 10. |
Статьи к прочтению:
Урок 8. Операторы ввода readln/read и диалоговые программы. Программирование на Pascal / Паскаль
Похожие статьи:
Начнем знакомство с оператора вывода. Данный оператор очень часто встречается в паскалевских программах. Оператор вывода существует в двух вариантах:…
write(a); — стандартная процедура вывода значения переменной «а» или результата вычисления арифметического выражения на экран writeln(а); — вывод с…
Решим задачу, прокомментировав каждое свое действие в фигурных скобках. Напомним, что комментарий не воспринимается компьютером, а нам он нужен для того, чтобы лучше понять как работает программа.
Задача. Напишите программу, которая бы очищала экран и вычисляла произведение двух чисел, вводимых пользователем.
Program Proizv2;
Write (‘Введите первое число ‘);
Write (‘Введите второе число ‘);
rezult := number1 * number2;
Write (‘Произведение чисел ‘, number1, ‘ и ‘, number2, ‘ равно ‘, rezult);
Чтобы лучше понять действие программы, наберите ее на компьютере и проверьте ее действие. Ответьте на вопросы:
• почему программу назвали Proizv2?
• зачем в раздел Uses поместили модуль Crt?
• какое назначение переменных number1, number2, rezult?
• какой тип у этих переменных? что это значит?
• если присвоить переменным number1 и number2 соответственно значение 5 и 7, то какую строчку выдаст компьютер при исполнении последней процедуры Write? Запишите ее в тетрадь.
• в каких строчках у пользователя запрашиваются значения переменных?
• в какой строчке происходит умножение чисел?
• что делает оператор присваивания в этой программе?
Задание. Измените программу так, чтобы она запрашивала у пользователя еще одну переменную и выводила результат произведения трех чисел.
Операторы Write и WriteLn
Мы уже использовали операторы Write и WriteLn, но нам необходимо подробнее остановиться на правилах применения этих операторов.
Write (список выражений)
WriteLn (список выражений)
Например, при выполнении процедуры WriteLn(‘Найденное число ‘,а), будет напечатана строчка, заключенная в апострофы, а затем выведено значение переменной а.
Оператор WriteLn можно применить и без параметров. В этом случае напечатается строка, состоящая из пробелов, и курсор будет переведен на другую строку. Это иногда нам нужно для лучшего восприятия ввода данных.
Операторы Read и ReadLn
Вспомним, что основное назначение ЭВМ – сэкономить человеческий труд. Поэтому необходимо обеспечить возможность, однажды написав программу, многократно ее использовать, вводя каждый раз другие данные. Такая гибкость в языке обеспечивается операторами Read и ReadLn. Этими операторами вводится информация с клавиатуры.
При выполнении процедуры Read ожидается ввод перечисленных в скобках значений. Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди.
Например, если вводятся значения 53 и Х, то при выполнении оператора Read(a,b) переменной а будет присвоено число 53, а переменной Х – буква Х. Причем, отметим, чтобы не было аварийной ситуации, нужно правильно определить тип данных в разделе Var; в нашем случае а:integer, а b:char.
Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу результат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.
Примечание. Когда Вы ставите задержку экрана, обратите внимание на предыдущий ввод. Если данные запрашивались процедурой Read задержки не будет.
Решим задачу, в которой рассмотрим все возможные употребления этих процедур.
Задача. Найти среднее значение трех чисел.
Примечание. Чтобы найти среднее значение нескольких чисел, нужно сложить эти числа и сумму разделить на количество этих чисел.
First, Second, Third : integer;
Write (‘Введите первое число ‘);
Write (‘Введите второе и третье числа через пробел ‘);
Sum := First + Second + Third;
Write (‘Среднее значение ‘, First, ‘, ‘,Second, ‘ и ‘, Third, ‘ равно ‘, Sum:5:2);
Наберите текст задачи и внимательно рассмотрите каждую строчку. Имя программы Srednee отражает содержание задачи. Кстати, договоримся о том, чтобы имя программы и имя файла, который содержит эту программу, совпадали. Далее идет подключение модуля Crt. В разделе Var описаны First, Second, Third как переменные целого типа, а Sum – действительного типа. Раздел операторов начинается со стандартной процедуры очистки экрана ClrScr (Clear Screen), которая находится в модуле Crt. Далее оператором Write мы выводим на экран сообщение ‘Введите первое число ‘, получив которое пользователь должен ввести число. Теперь компьютер должен считать введенные символы и занести их в переменную First, это произойдет при выполнении следующего оператора ReadLn(First). Затем с помощью оператора Write запрашиваем значения еще двух чисел и считываем их в переменные Second и Third. Затем вычисляем их сумму и присваиваем полученное число переменной Sum. Чтобы найти среднее, нужно теперь полученное число разделить на 3 и сохранить результат в какой-либо переменной. Совсем не обязательно описывать еще одну переменную для сохранения результата. Можно, как в нашей программе, значение переменной Sum разделить на 3 и результат опять присвоить той же переменной Sum. Теперь можно вывести результат вычислений на экран с помощью процедуры Write. И, наконец, последняя процедура ReadLn задержит наш вывод на экране до нажатия на клавишу.
Среднее значение 5, 7 и 12 равно 8.00
Просмотрите внимательно эту строчку и сравните со строчкой вывода результата в нашей программе. Протестируйте программу еще несколько раз для других значений переменных.
Выберите с учителем задачи для решения из следующего перечня:
1. Ввести два числа a и b. С помощью оператора присваивания обменять их значения:
а) с использованием промежуточной переменной (x:=a; a:=b; b:=x);
b) без использования промежуточной переменной (a:=a-b; b:=a+b; a:=b-a).
2. Составить программу, которая запрашивает у пользователя целое число, действительное число, произвольный символ и строку, а затем все выводит в одной строчке.
3. Выведите на экран свою фамилию, имя и отчество, а через две строки – дату своего рождения.
4. Написать программу для печати звездочками одной из фигур:
Pascal | Лекция №3
Операторы присваивания, операторы ввода-вывода
Содержание:
Поскольку язык Pascal алгоритмический, то для записи шагов алгоритмов, для наглядного однозначного представления алгоритмов в стиле структурного программирования существует набор операторов. Основные операторы считаются простыми, остальные – структурными, т.е. в их состав могут входить другие операторы, причем глубина «вложенности» операторов не ограничена.
Операторы присваивания
Оператор присваивания предназначен для присваивания переменной значения выражения. Оператор обозначается символом «:=», в левой части указывается имя переменной, в правой – вычисляемое выражение. Выражение может составлять число, знаки арифметических действий, круглые скобки, переменные и константы, процедуры и функции, допускаемое вложение друг в друга. Обязательное условие — совместность типов данных. Оператор считается синтаксически правильным, если тип выражения в правой части совпадает с типом переменной. Исключение составляет случай, когда выражение имеет целый тип, а переменная – вещественный. Допускается использование этого оператора с переменными любого типа, кроме файлового. Синтаксис:
Если в левой части оператора присваивания указана переменная типа Boolean, то в правой части оператора должно быть задано логическое выражение, задающее правило вычисления логического значения (true или false). Синтаксис:
Логическое выражение есть логическая формула, записанная на языке программирования. Логическое выражение состоит из логических операндов, связанных логическими операциями и круглыми скобками. Результатом вычисления логического выражения является булева величина (true или false). Логическими операндами могут быть логические константы, переменные, функции, операции отношения. Один логический операнд является простейшей формой логического выражения.
Примеры использования оператора присваивания:
с переменными целого типа: x := 200;
вещественного: y := Sin(Pi/3);
символьного: с := ‘6’;
булевского: test := false;
R – радиус окружности (тип – integer или real)
Pi – константа, равная значению p.
Операторы ввода-вывода
Ввод данных – это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи.
Вывод данных – обратный процесс, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей.
Основными устройствами ввода-вывода у ПК являются клавиатура и экран монитора. Именно через эти устройства главным образом осуществляется диалог между человеком и ПК.
Для того чтобы программа могла работать в диалоговом режиме (позволяла бы вводить данные и видеть результаты работы на экране) существуют операторы ввода и вывода.
Существует две формы оператора ввода: Read и ReadLn. Процедура ввода с клавиатуры имеет следующий формат:
Read ( ),
где – это последовательность имен переменных, разделенных запятыми.
Другой вариант оператора ввода с клавиатуры имеет вид:
ReadLn ( )
Оператор ReadLn аналогичен предыдущему, отличие заключается в том, что при выполнении одного оператора ReadLn курсор на экране монитора переходит на новую строку.
Аналогично существует две формы оператора вывода. Оператор вывода на экран (обращение к стандартной процедуре вывода) имеет следующий формат:
Здесь элементами списка вывода могут быть выражения различных типов. В результате выполнения данного оператора значения списка будут выведены на экран монитора.
Если необходимо вывести на экран какой-либо текст, то внутри оператора Write этот текст записывается в апострофах.
Второй вариант процедуры вывода на экран:
Его действие отличается от оператора Write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор WriteLn может использоваться без каких-либо параметров – в этом случае после выполнения такого оператора курсор перемещается на одну позицию вниз.
В операторах вывода Write и WriteLn имеется возможность установить ширину поля вывода. Если X и I – целочисленные выражения, а Y — вещественное выражение, то вызов
Write ( X : I, Y : I ) — печатает значения X и Y каждое в крайние правые позиции полей шириной I;
Write ( Y : I : X) – вызовом в крайние правые позиции поля шириной I символов выводится десятичное представление значения Y в формате с фиксированной точкой, причем после десятичной точки выводится X цифр, представляющих дробную часть числа.
Составной оператор
Для того чтобы задать последовательное выполнение (по порядку, один за другим) нескольких операторов, в языке Pascal существует составной оператор. Операторы, входящие в составной, разделяются символом «;», в начале ставится служебное слово Begin, в конце – End.
Составной оператор применяется в тех случаях, когда синтаксис языка допускает использование только одного оператора, а смысл требует выполнения нескольких действий.
Обратите внимание: перед служебным словом End разделитель (символ «;») не ставится.
Условный оператор
Очень часто так же, как и в жизни, при решении задач некоторые действия выполняются в зависимости от истинности каких-либо условий. Например, мы берем с собой зонт, если идет дождь или на небе тучи. Или часто встречающиеся в математике определения функций:
Здесь значение функции f вычисляется в зависимости от величины x по разным формулам.
Для задания выбора того или иного действия в зависимости от условия в языке Pascal предназначен условный оператор, который имеет две формы: полную и сокращенную.
В качестве условия используется значение логического выражения, в качестве операторов – любой простой или составной оператор, в том числе и сам условный оператор.
И по ветке then, и по ветке else должен выполняться единственный оператор. Если по смыслу задачи необходимо выполнить несколько операторов, тогда следует использовать составной оператор.
Часть условного оператора, начинающаяся со слова else, может отсутствовать, такая форма оператора называется сокращенной и выглядит следующим образом:
Оператор в этом случае выполняется, если условие истинно, иначе программа переходит к следующему оператору.
Пример полной формы: рассмотрим определение функции f(x):
Если в нашем примере описать логическую переменную В, значение которой будет равно true, если x
Пример краткой формы:
При использовании вложенных условных операторов может возникнуть неоднозначность, например:
В данном случае необходимо помнить, что служебное слово else всегда ассоциируется с ближайшим по тексту программы словом if, которое еще не связано с else. А чтобы такая двусмысленность не возникала, лучше всего пользоваться составным оператором:
Теперь дадим строгое описание условного оператора в форме синтаксической диаграммы:
Пример: По длинам трех сторон треугольника a, b, c вычислить его площадь.
Условный оператор Case (оператор варианта)
Более обобщенной формой условного оператора, учитывающей произвольное число альтернатив, является оператор варианта. Использование этого оператора позволяет задавать выполнение некоторых действий для нескольких различных значений одного выражения:
Присвоить строке S значение дня недели для заданного числа D при условии, что в месяце 31 день и 1-ое число – понедельник.
Для построения алгоритма воспользуемся операцией mod, позволяющий вычислить остаток от деления двух целых чисел, и с условием, что 1-ое число – понедельник. Тогда можно записать следующий оператор Case:
Чтобы завершить построение алгоритма решения поставленной задачи, необходимо ограничить область возможных значений переменной D (тип — integer):
В качестве можно также задать список и (или) диапазон значений.
Контрольные вопросы
Решим задачу, прокомментировав каждое свое действие в фигурных скобках. Напомним, что комментарий не воспринимается компьютером, а нам он нужен для того, чтобы лучше понять как работает программа.
Задача. Напишите программу, которая бы очищала экран и вычисляла произведение двух чисел, вводимых пользователем.
Program Proizv2;
Write (‘Введите первое число ‘);
Write (‘Введите второе число ‘);
rezult := number1 * number2;
Write (‘Произведение чисел ‘, number1, ‘ и ‘, number2, ‘ равно ‘, rezult);
Чтобы лучше понять действие программы, наберите ее на компьютере и проверьте ее действие. Ответьте на вопросы:
• почему программу назвали Proizv2?
• зачем в раздел Uses поместили модуль Crt?
• какое назначение переменных number1, number2, rezult?
• какой тип у этих переменных? что это значит?
• если присвоить переменным number1 и number2 соответственно значение 5 и 7, то какую строчку выдаст компьютер при исполнении последней процедуры Write? Запишите ее в тетрадь.
• в каких строчках у пользователя запрашиваются значения переменных?
• в какой строчке происходит умножение чисел?
• что делает оператор присваивания в этой программе?
Задание. Измените программу так, чтобы она запрашивала у пользователя еще одну переменную и выводила результат произведения трех чисел.
Операторы Write и WriteLn
Мы уже использовали операторы Write и WriteLn, но нам необходимо подробнее остановиться на правилах применения этих операторов.
Write (список выражений)
WriteLn (список выражений)
Например, при выполнении процедуры WriteLn(‘Найденное число ‘,а), будет напечатана строчка, заключенная в апострофы, а затем выведено значение переменной а.
Оператор WriteLn можно применить и без параметров. В этом случае напечатается строка, состоящая из пробелов, и курсор будет переведен на другую строку. Это иногда нам нужно для лучшего восприятия ввода данных.
Операторы Read и ReadLn
Вспомним, что основное назначение ЭВМ – сэкономить человеческий труд. Поэтому необходимо обеспечить возможность, однажды написав программу, многократно ее использовать, вводя каждый раз другие данные. Такая гибкость в языке обеспечивается операторами Read и ReadLn. Этими операторами вводится информация с клавиатуры.
При выполнении процедуры Read ожидается ввод перечисленных в скобках значений. Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди.
Например, если вводятся значения 53 и Х, то при выполнении оператора Read(a,b) переменной а будет присвоено число 53, а переменной Х – буква Х. Причем, отметим, чтобы не было аварийной ситуации, нужно правильно определить тип данных в разделе Var; в нашем случае а:integer, а b:char.
Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу результат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.
Примечание. Когда Вы ставите задержку экрана, обратите внимание на предыдущий ввод. Если данные запрашивались процедурой Read задержки не будет.
Решим задачу, в которой рассмотрим все возможные употребления этих процедур.
Задача. Найти среднее значение трех чисел.
Примечание. Чтобы найти среднее значение нескольких чисел, нужно сложить эти числа и сумму разделить на количество этих чисел.
First, Second, Third : integer;
Write (‘Введите первое число ‘);
Write (‘Введите второе и третье числа через пробел ‘);
Sum := First + Second + Third;
Write (‘Среднее значение ‘, First, ‘, ‘,Second, ‘ и ‘, Third, ‘ равно ‘, Sum:5:2);
Наберите текст задачи и внимательно рассмотрите каждую строчку. Имя программы Srednee отражает содержание задачи. Кстати, договоримся о том, чтобы имя программы и имя файла, который содержит эту программу, совпадали. Далее идет подключение модуля Crt. В разделе Var описаны First, Second, Third как переменные целого типа, а Sum – действительного типа. Раздел операторов начинается со стандартной процедуры очистки экрана ClrScr (Clear Screen), которая находится в модуле Crt. Далее оператором Write мы выводим на экран сообщение ‘Введите первое число ‘, получив которое пользователь должен ввести число. Теперь компьютер должен считать введенные символы и занести их в переменную First, это произойдет при выполнении следующего оператора ReadLn(First). Затем с помощью оператора Write запрашиваем значения еще двух чисел и считываем их в переменные Second и Third. Затем вычисляем их сумму и присваиваем полученное число переменной Sum. Чтобы найти среднее, нужно теперь полученное число разделить на 3 и сохранить результат в какой-либо переменной. Совсем не обязательно описывать еще одну переменную для сохранения результата. Можно, как в нашей программе, значение переменной Sum разделить на 3 и результат опять присвоить той же переменной Sum. Теперь можно вывести результат вычислений на экран с помощью процедуры Write. И, наконец, последняя процедура ReadLn задержит наш вывод на экране до нажатия на клавишу.
Среднее значение 5, 7 и 12 равно 8.00
Просмотрите внимательно эту строчку и сравните со строчкой вывода результата в нашей программе. Протестируйте программу еще несколько раз для других значений переменных.
Выберите с учителем задачи для решения из следующего перечня:
1. Ввести два числа a и b. С помощью оператора присваивания обменять их значения:
а) с использованием промежуточной переменной (x:=a; a:=b; b:=x);
b) без использования промежуточной переменной (a:=a-b; b:=a+b; a:=b-a).
2. Составить программу, которая запрашивает у пользователя целое число, действительное число, произвольный символ и строку, а затем все выводит в одной строчке.
3. Выведите на экран свою фамилию, имя и отчество, а через две строки – дату своего рождения.
4. Написать программу для печати звездочками одной из фигур:
а) елочки (нескольких елочек);
б) снежинки (нескольких снежинок);
5. Составить свою визитную карточку.
* Пролетарская 74 кв. 55 *
6. Составьте диалог пользователя с компьютером на произвольную тему.
Например, машина задает два вопроса “Как тебя зовут?” и “Сколько тебе лет?”; после введения имени (Антон) и числа (15) выводит на экран “Да. Через 50 лет тебе уже будет 65 лет, а звать тебя будут не Антон, а дед Антон”
7. Запросить у пользователя два числа и вывести на экран результат суммы, разности, произведения и частного этих чисел полным ответом.
8. Запросить у пользователя два числа и вывести на экран результат целочисленного деления и остаток от целочисленного деления в виде таблицы. Например, при вводе чисел 5 и 3 на экране должна быть такая таблица:
9. Написать программу, которая запрашивает название животного и число, а затем выводит на экран фразу типа «Белка съест 10 грибов» (при вводе слова «белка» и числа 10).
10. Организуйте диалог продавца (компьютер) и покупателя (пользователь) при покупке какого-либо товара по следующей схеме: предложение товара по определенной цене, запрашивание количества покупаемого товара, определение и вывод на экран денежной суммы, которую должен заплатить покупатель за покупку.
Занятие III
Тема: Стандартные функции и процедуры. Применение в простейших линейных программах
Для решения задач нам понадобятся стандартные функции и процедуры.
Функция – это такая организация преобразования переданного ей значения, при которой это измененное значение передается обратно.
Процедура– это такая организация преобразования переданного ей значения параметра, при которой изменяется значение этого параметра, и, в отличие от функции, не возвращает никакого значения.
Познакомимся с основными, наиболее часто используемыми.
I Арифметические функции
1) Abs(x), где аргумент и результат являются переменными целого или вещественного типа – вычисляет модуль (абсолютную величину) числа х;
2) Cos(x), где аргумент и результат являются переменными вещественного типа – вычисляет косинус х;
3) Sin(x), где аргумент и результат являются переменными вещественного типа – вычисляет синус х;
4) Frac(x), где аргумент и результат являются переменными вещественного типа – выделяет дробную часть числа х;
5) Int(x), где аргумент и результат являются переменными вещественного типа – выделяет целую часть числа х;
6) Pi, где результат является переменной вещественного типа – вычисляет значение
7) Random(x), где аргумент и результат являются переменными целого типа – генерирует случайное число в пределах от 0 до х включительно. Если параметр х не задан, то формируется вещественное число от 0 до 1. Перед использованием данной функции нужно инициализировать генератор случайных чисел при помощи процедуры Randomize (см. ниже);
8) Sqr(x), где аргумент и результат являются переменными целого или вещественного типа – вычисляет ;
9) Sqrt(x), где аргумент и результат являются переменными целого или вещественного типа – вычисляет .
II Функции преобразования типов
1) Chr(x), где аргумент типа Byte, а результат типа Char– возвращает символ, у которого код в таблице ASCII равен х;
2) Ord(x), где аргумент может быть любого порядкового типа, а результат типа LongInt – возвращает порядковый номер значения х при начале нумерации с нуля;
3) Round(x), где аргумент вещественного типа, результат типа LongInt – округляет число х до ближайшего целого;
4) Trunc(x), где аргумент вещественного типа, результат типа LongInt – выделяет целую часть числа х.
III Функции для порядковых типов
1) Odd(x), где аргумент типа LongInt, а результат логического типа – определяет, является ли число четным (результат false) или нечетным (результат true);
2) Pred(x), где аргумент и результат любого порядкового типа – получает предшествующее значение;
3) Succ(x), где аргумент и результат любого порядкового типа – получает последующее значение;
4) Upcase(x), где аргумент и результат типа Char – преобразует букву латинского алфавита в соответствующую ей заглавную (буква х может быть как строчной, так и заглавной).
IV Процедуры для порядковых типов
1) Dec(x), где аргумент любого порядкового типа – уменьшает значение переменной х на 1;
2) Dec(x,n), где х любого порядкового типа, а n типа LongInt – уменьшает значение переменной х на n;
3) Inc(x), где аргумент любого порядкового типа – увеличивает значение переменной х на 1;
4) Inc(x,n), где х любого порядкового типа, а n типа LongInt – увеличивает значение переменной х на n;
5) Randomize – инициализирует генератор случайных чисел.
Правила применения функций:
• чтобы воспользоваться функцией, нужно указать ее в правой части оператора присваивания;
• при обращении к функции необходимо в круглых скобках указать ее аргументы;
• в разделе описания переменных правильно указывайте типы переменных, которые хотите употребить в качестве аргумента или результата функции;
• в одном выражении можно обратиться к нескольким функциям.
Правила применения процедур:
• для выполнения процедуры ее надо вызвать в программе в виде оператора;
• в разделе описания переменных правильно указывайте тип переменной, которую хотите употребить в качестве аргумента процедуры.
Задача. Найти значения выражений:
a) (1+x)2 b) c) |a+ bx|
Прежде чем приступить к составлению программы, необходимо перевести данные выражения с математического языка на язык Паскаль.
b) à sqrt((1+A)*5)
|
c) à abs(A+b*x)
Теперь уже можно переходить к составлению программы.
b, x, Rezult : integer;
Writeln(‘Введите значения переменных (A-положительно)’);
Write (‘sqr(1+x)=’, Rezult);
Write (‘sqrt((1+A)*5)=’, Rezult);
Write (‘abs(A+b*x)=’, Rezult);
Задание. Наберите программу, протестируйте, добавьте комментарий, сохраните файл и распечатайте листинг.
Занятие IV
Тема: Решение задач
Теперь Вы должны научиться применять в программах полученные Вами знания для решения определенных задач. Выберите с учителем задачи из предложенного ниже списка. Старайтесь выполнять задание самостоятельно. Если возникают проблемы, обращайтесь к учителю.
1. Найти значение арифметического выражения, запросив значения переменных у пользователя:
а) b)
c)
2. По данным сторонам прямоугольника вычислить его периметр (P), площадь (S) и длину диагоналей (D) по формулам:
Р=2(a+b); S=ab; D=
3. Запросите действительное число и найдите целую часть этого числа и округлите его до ближайшего целого.
4. Найти площадь круга (S) и длину окружности (L) заданного радиуса.
S= R
, L=2
R
5. Выполнить целочисленное деление натурального числа х на натуральное число у и вывести на экран частное q и остаток r (см. формулы).
6. Составить программу вычисления площади произвольного треугольника, пользуясь любой из известных формул (задав необходимые исходные данные):
S= , где а – основание треугольника, h – высота, проведенная к этому основанию;
S= , где a, b, с – стороны треугольника, а р =
;
S= С, где a, b – стороны треугольника,
С – угол между ними.
7. Вычислить рациональным способом, то есть за минимальное количество операций:
a) y=x , (т.е. за три операции y=
)
b) y=x , (т.е. за три операции y=
)
c) y=x , (т.е. за три операции y=
)
8. Найти значение выражения:
a) d= b) d=
9.Вычислить объем (V) и площадь (S) полной поверхности прямоугольного параллелепипеда по длинам его ребер а, в, с.
10. По данной высоте Н и диаметру основания D прямого кругового циллиндра вычислить его площадь полной поверхности (S) и объем (V).
S= ; V=
11. По известному радиусу вычислите объем и площадь поверхности шара.
S=4 , V=
12. Составьте программу вычисления длин высот треугольника, у которого длины сторон a, b, c.
Примечание. Высотой треугольника называется перпендикуляр, опущенный из любой вершины треугольника на противолежащую сторону или ее продолжение. Высота треугольника, опущенная на сторону а можно найти по формуле:
, где
13. Составьте программу вычисления длин медиан треугольника, у которого длины сторон a, b, c.
Примечание. Медианой называется отрезок, соединяющий любую вершину треугольника с серединой противоположной стороны. Медиану, соединяющую вершину треугольника А с серединой стороны а, можно найти по формуле:
14. Составить программу вычисления давления столба жидкости плотностью высотой H на дно сосуда, пользуясь формулой P=g
H, где g=9,8
15. Составьте программу вычисления силы давления, действующей на пол со стороны стола массой m, если суммарная площадь (S) опоры ножек стола 100 см , пользуясь формулой
, где g=9,8
17. Составьте программу вычисления потенциальной энергии тела массой м на высоте h относительно Земли, пользуясь формулой E =gmh.
18. Составьте программу вычисления механической работы, когда тело равномерно движется под действием приложенной к нему силы, пользуясь формулой A=FS, где F – приложенная сила, а S – пройденный путь.
19. Ввести 4-значное число. Превратить его в 2-значное, отбросив первую и последнюю цифру.
20. С клавиатуры задается число К. Выбросить из записи К цифру, обозначающую сотни. Вывести полученное число на экран.
Приготовьте для проверки файлы и листинги с вашими программами. Будьте готовы ответить на следующие вопросы:
1. Почему при записи формул на Паскале их «вытягивают» в линию? Почему знак умножения всегда выписывают явно?
2) Почему на Паскале аргумент функции всегда записывают в скобках (например, ln(5), а не ln5)
3) Укажите символы, буквы, составные символы:
4) Что в списке можно рассматривать как идентификаторы:
5) Какие идентификаторы удобнее использовать и почему:
klass1, Klass_1, summadohoda, SummaDohoda, nomerdoma, Nomer_Doma
6) Найдите в следующем списке зарезервированные слова:
X, Program, Y, Summa, MyMoney, Произведение, Vova, begin, end, if, repeat, Read.
7) В каких случаях надо использовать переменные:
• если в программе используется какое-то число,
• если в вычислениях какой-то операнд постоянно меняет свое значение,
• если операнд в выражении хотя бы раз меняет свое значение.
8) Какая структура программы правильна:
a) Program MyProgram; b) Program MyFirst;
9) Какой из перечисленных разделов обязателен в программе?
10) Для чего используется слово Uses?
11) В разделе процедур и функций описываются только стандартные процедуры?
• нет, только пользовательские,
• и стандартные, и пользовательские.
12) Найдите ошибки в программах:
13) С чего начинается программа?
14) Как описываются переменные?
15) С чего начинается основная программа?
16) Как выглядит оператор вывода? Для чего он служит? Какое существует различие между выводом сообщения и выводом значения переменной? Можно ли с помощью оператора вывода выполнить два действия? Если – да, то какие?
17) Что собой представляет оператор ввода? Для чего он служит? Как можно его использовать, чтобы осуществить задержку экрана?
18) Как происходит присваивание переменной какого-либо значения? Как называется этот оператор?
19) Чем заканчивается программа?
20) Как сохранить программу на диске?
21) Как сохранить программу под другим именем? Зачем это бывает необходимо?
22) Как отрыть новый файл?
23) Как отрыть уже существующий файл?
24) Как выйти из программы?
25) Какие есть способы загрузки программы Турбо Паскаля в оперативную память?
26) Что такое процедура и чем она отличается от процедуры?
28) Какие имена можно использовать в языке TurboPascal?
29) Из каких частей состоит программа, написанная на языке TurboPascal?
30) Для чего необходим в программе раздел описаний?
31) Какие стандартные типы вам известны?
32) Какие типы относятся к порядковым.?
33) В чем различия между данными действительного и целого типов?
34) Назовите функции горячих клавиш F1-F10.
35) С помощью какой клавиши можно выйти в главное меню?
Графика
Последнее изменение этой страницы: 2017-03-17; Просмотров: 1119; Нарушение авторского права страницы