Ввод-вывод, оператор присваивания, арифметические операции
Язык программирования Паскаль. Знакомство со средой программирования Турбо Паскаль. Основные понятия. Первая программа
Паскаль — язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623-1662) и разработан в 1968-1971 гг. Никлаусом Виртом. Первоначально был разработан для обучения, но вскоре стал использоваться для разработки программных средств в профессиональном программировании.
Паскаль популярен среди программистов по следующим причинам:
- Прост для обучения.
- Отражает фундаментальные идеи алгоритмов в легко воспринимаемой форме, что предоставляет программисту средства, помогающие проектировать программы.
- Позволяет четко реализовать идеи структурного программирования и структурной организации данных.
- Использование простых и гибких структур управления: ветвлений, циклов.
- Надежность разрабатываемых программ.
Турбо Паскаль — это система программирования, созданная для повышения качества и скорости разработки программ (80-е гг.). Слово Турбо в названии системы программирования — это отражение торговой марки фирмы-разработчика Borland International (США).
Систему программирования Турбо Паскаль называют интегрированной (integration — объединение отдельных элементов в единое целое) средой программирования, т.к. она включает в себя редактор, компилятор, отладчик, имеет сервисные возможности.
Основные файлы Турбо Паскаля:
Turbo.exe — исполняемый файл интегрированной среды программирования;
Turbo.hlp — файл, содержащий данные для помощи;
Turbo.tp — файл конфигурации системы;
Turbo.tpl — библиотека стандартных модулей, в которых содержатся встроенные процедуры и функции (SYSTEM, CRT, DOS, PRINTER, GRAPH, TURBO3, GRAPH3).
Запуск интегрированной среды программирования
Для запуска интегрированной среды программирования нужно установить текущим каталог с Турбо Паскалем (TP7\BIN) и ввести команду: turbo.exe.
Задание. Запустите среду программирования и рассмотрите экран. Перед вами полоса меню, область окна и строка статуса. Нажмите клавишу F10 — теперь вам доступны все опции меню. Используя клавиши управления курсором, рассмотрите меню. С командами меню мы будем знакомиться постепенно. Нажмите клавишу Esc (вы вышли из меню). Перемещая курсор в окне, следите за строкой статуса. Какая информация отражается в этой строке?
Почти все, что вы видите и делаете в среде Турбо Паскаль, происходит в окнах.
Окно — это область экрана, которую можно перемещать, изменять в размере, перекрывать, закрывать и открывать.
Интегрированная среда программирования Турбо Паскаль позволяет иметь любое количество открытых окон, но в любой момент времени активным может быть только одно.
Активное окно – это окно, с которым вы в настоящий момент работаете.
Общие горячие клавиши:
F2 — сохраняет файл активного окна;
F3 — появление диалогового окна и возможность открыть файл;
F4 — запускает программу до строки, на которой стоит курсор;
F5 — масштабирует диалоговое окно;
F6 — переходит к следующему открытому окну;
F7 — запускает программу в режиме отладки с заходом внутрь процедур;
F8 — запускает программу в режиме отладки, минуя вызов процедур;
F9 — компилирование программы в текущем окне;
F10 — возвращение в меню.
Мы начнем изучение меню с наиболее важных и необходимых режимов.
Как войти в меню? Всего есть три возможности:
С помощью клавиш управления курсором подсветите слово FILE и нажмите клавишу «Enter». Что вы видите?
Появилась вертикальная таблица со списком команд, называемая выпадающим меню. Познакомимся с ним.
Open-F3 — открыть существующий файл (при активизации этой опции появляется окно со списком файлов, где можно выбрать необходимый),
New — создать новый файл (очищает память редактора и переводит в режим создания нового файла, которому присваивается имя Noname.pas; имя можно изменить при записи файла на диск),
Save-F2 — сохранить файл (переписывает файл из памяти редактора на диск),
Save as — сохранить с новым именем,
Save all — сохранить все в окнах (записывает содержимое всех окон редактора в соответствующие файлы),
Change dir — смена каталога (позволяет изменить установленный по умолчанию диск или каталог),
Print — печать файла,
Get info — выдача информации о текущем состоянии программы и используемой памяти,
DOS Shell — выход в DOS без выгрузки из памяти (для возврата ввести команду exit),
Exit — выход и выгрузка из памяти.
Программы на языке Паскаль имеют блочную структуру:
1. Блок типа PROGRAM — имеет имя, состоящее только из латинских букв и цифр. Его присутствие не обязательно, но рекомендуется записывать для быстрого распознавания нужной программы среди других листингов.
2. Программный блок, состоящий в общем случае из 7 разделов:
- раздел описания модулей (uses);
Общая структура программы на языке Паскаль следующая:
Начнем знакомство с Паскалем с программы, которая складывает два числа и выводит сумму на экран.
Откройте файл, в который Вы запишите эту программу. Для этого нажмите клавишу F10, чтобы выйти в главное меню, затем клавишами перемещения курсора выберите опцию File, а в выпавшем меню команду New.
Примечание. Обратите внимание на оформление текста программы.
- Найдите в этой программе заголовок, раздел описания переменных, признак начала программы, признак конца программы, тело программы, комментарий.
А теперь подведем итог вашим размышлениям.
Имя этой программы Summa2. Заметим, что требования к имени выполняются: оно отражает содержание программы, а также не содержит недопустимых символов.
Далее идет специально выделенный комментарий, в котором вы должны записать подробно условие задачи и указать, кто написал эту программу и когда.
Из разделов описаний имеется лишь один — раздел переменных. Он начинается со служебного слова Var. Мы описали три переменные: number1, number2, result. Все они переменные целого типа. Поэтому мы перечислили их через запятую, поставили двоеточие и указали тип переменных. Подобные объявления разделяются между собой точкой с запятой.
После описательной части идет раздел операторов, начинающийся со служебного слова Begin, после которого идут операторы языка.
Недостатком этой программы является то, что значения переменных постоянны. А нам нужно научиться писать такие программы, которые решают поставленные задачи в общем виде, т. е. для любых значений переменных. Для этого мы научимся запрашивать значения у пользователя, анализировать их и выдавать соответствующий результат.
Что делает эта программа?
Привести пример выполнения этой программы, что делает эта программа, и доказать
Привести примеры выполнения этой программы, что делает эта программа, и доказать желательно в виде.
что делает эта процедура
что делает эта процедура скажите пожалуйста — procedure perevod(n:integer); begin if n<3 then.
Что делает эта часть кода?
Что делает вот это? function ToStringCode(code:integer):string; // begin var s:string; .
9719 / 5057 / 3285
Регистрация: 17.08.2012
Сообщений: 15,601
Находит сумму k наименьших цифр числа a.
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 28 29 30 31 32 33 34 35 36 37 38
function summa(a:longint;k:byte):byte; //функция сложения k минимальных цифр числа a // ^число ^сколько младших цифр сложить var x:array[1..10] of byte; //массив для цифр n,i,j,s:byte; begin a:=abs(a); //игнорируем знак числа n:=0; //количество цифр числа пока 0 while a>0 do //пока число не разобрали на цифры, цикл begin n:=n+1; //номер цифры x[n]:=a mod 10; //выделяем очередную младшую цифру и помещаем в массив a:=a div 10; //уничтожаем очередную младшую цифру end; if k>n then k:=n; //если количество цифр меньше k, то складываем, сколько есть //сортируем массив цифр по возрастанию, сортировка обменом for i:=1 to n-1 do for j:=i+1 to n do if x[i]>x[j] then //если цифры не так расположены, begin //меняем их местами с помощью дополнительной переменной s:=x[i]; x[i]:=x[j]; x[j]:=s end; s:=0; //теперь s будет суммой, пока сумма = 0 for i:=1 to k do s:=s+x[i]; //суммируем первые k цифр отсортированного массива summa:=s //получаем возвращаемое значение функции end; var a,b:longint; //и зачем здесь b? n,k:byte; begin write('Введите целое число a='); //и так ясно read(a); //и так ясно write('Сколько младших цифр сложить k='); //и так ясно read(k); //и так ясно write('Сумма=',summa(a,k)); //печатаем значение функции summa(a,k) readln(b); //это что за идиотизм, переменная b нигде не используется end.
7644 / 4484 / 2809
Регистрация: 22.11.2013
Сообщений: 12,826
Записей в блоге: 1
Cyborg Drone, про переменную b, полагаю, это у автора была «вынужденная» мера Вон там выше ввод был сделан двумя Read, одиночный ReadLn; получал сразу же конец строки и не приводил к ожиданию нажатия Enter. А с переменной он должен пропустить все незначащие символы, в которые входят и переводы строк. Для исправления можно выше воспользоваться ReadLn вместо Read или чистить принудительно ввод перед ReadLn при помощи SeekEOF (который не везде есть).
Что делает программа
Вернёмся к компьютерам традиционным. То есть к ЭВМ — электронно-вычислительным машинам.
Подробно расписывать принципы загрузки программ в память и их выполнения я не буду. Это описано в книге Как стать программистом.
Здесь вам нужно только понять, что компьютер работает с какими-то данными. И любая программа получает какие-то входные данные, обрабатывает их по заданным алгоритмам, и выдаёт результат (выходные данные).
Давайте попробуем добить наш пример с походом за молоком.
Входные данные
Как вы уже знаете, в программу нужно передать какие-то данные для обработки. В нашем случае входными данными будут:
- Деньги из тумбочки
- Информация о погоде
Обработка данных
- Программа определяет погоду, и тепло одевается, если на улице холодно
- Программа идёт в магазин
- Программа меняет деньги на молоко
- Программа возвращается домой
Выходные данные
- Молоко
- Сдача в тумбочке
Важный вывод, который вы должны понять и запомнить:
Программа получает входные данные, обрабатывает их по заданным алгоритмам, и выдаёт результат.
Разумеется, данные — это понятие растяжимое. Вот с этим растяжимым понятием мы и будем разбираться в следующих статьях.
Домашнее задание:
Возьмите алгоритмы, которые вы составили в предыдущем уроке, и попробуйте выделить в них три блока: входные данные, обработчик данных, выходные данные.
Начало. Тексты программ
Это — самая первая программа на любом языке программирования.
Вычисление площади круга
const Pi = 3.1415; begin var r := ReadReal('Введите радиус круга: '); var S := Pi*r*r; Println('Площадь круга равна ',S); end.
Здесь иллюстрируется ввод, затем вычисления и вывод результата.
Вычисление A 8
Код на PascalABC.NET:
var a: real; begin var a := ReadReal('Введите a: '); var a2,a4,a8: real; // вспомогательные переменные var a2 := a * a; var a4 := a2 * a2; var a8 := a4 * a4; Println(a,$' в степени 8 = '); end.
Здесь иллюстрируется использование промежуточных переменных и вычислений: без промежуточных вычислений мы бы потратили 7 умножений, а с промежуточными — всего 3.
Вычисление расстояния между двумя точками на прямой
Код на Pascal:
var a,b: real; // координаты точек r: real; // расстояние между точками на прямой begin write('Введите координату точки a: '); readln(a); write('Введите координату точки b: '); readln(b); r := abs(a-b); writeln('Расстояние между точками = ',r); end.
Здесь иллюстрируется использование стандартной функции abs
Вычисление гипотенузы по катетам
var a,b: real; // катеты c: real; // гипотенуза begin write('Введите катеты прямоугольного треугольника: '); readln(a,b); c := sqrt(a*a+b*b); writeln('Гипотенуза = ',c); end.
Здесь иллюстрируется использование стандартной функции sqrt
Бросание кубиков
var r1,r2: integer; // значения на верхних гранях кубиков begin r1 := Random(6)+1; r2 := Random(6)+1; writeln('Очки, выыпавшие на кубиках: ',r1,' ',r2); writeln('Сумма очков равна ',r1+r2); end.
Здесь иллюстрируется использование стандартной функции Random
Обмен значений двух переменных с использованием третьей
var x,y: real; v: real; // вспомогательная переменная begin write('Введите x,y: '); readln(x,y); v := x; x := y; y := v; writeln('Новые значения x,y: ',x,' ',y); end.
Это — классическая задача о перемене местами значений двух переменных с использованием третьей переменной. Она часто возникает в других задачах. Интересно, что x и y являются как входными, так и выходными переменными
Код на PascalABC.NET:
var x,y: real; begin write('Введите x,y: '); readln(x,y); var v: real; // вспомогательная переменная v := x; x := y; y := v; writeln('Новые значения x,y: ',x,' ',y); end.
Данное решение использует внутриблочное описание переменной. В результате вспомогательная переменная описывается первый раз лишь в тот момент, в который она действительно понадобилась
Выделение цифр из двузначного числа
var x: integer; // двузначное число c1,c2: integer; // первая и вторая цифры двузначного числа begin write('Введите двузначное число: '); readln(x); c1 := x div 10; c2 := x mod 10; writeln('Первая и вторая цифры двузначного числа: ',c1,' ',c2); end.
Ссылки
- Программы для начинающих
- Сайт PascalABC.NET: Программы и алгоритмы для начинающих