Что делает эта программа
Перейти к содержимому

Что делает эта программа

Ввод-вывод, оператор присваивания, арифметические операции

Язык программирования Паскаль. Знакомство со средой программирования Турбо Паскаль. Основные понятия. Первая программа

Паскаль — язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623-1662) и разработан в 1968-1971 гг. Никлаусом Виртом. Первоначально был разработан для обучения, но вскоре стал использоваться для разработки программных средств в профессиональном программировании.

Паскаль популярен среди программистов по следующим причинам:

  1. Прост для обучения.
  2. Отражает фундаментальные идеи алгоритмов в легко воспринимаемой форме, что предоставляет программисту средства, помогающие проектировать программы.
  3. Позволяет четко реализовать идеи структурного программирования и структурной организации данных.
  4. Использование простых и гибких структур управления: ветвлений, циклов.
  5. Надежность разрабатываемых программ.

Турбо Паскаль — это система программирования, созданная для повышения качества и скорости разработки программ (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.

Эксперт Pascal/DelphiЭксперт NIX

7644 / 4484 / 2809
Регистрация: 22.11.2013
Сообщений: 12,826
Записей в блоге: 1

Cyborg Drone, про переменную b, полагаю, это у автора была «вынужденная» мера Вон там выше ввод был сделан двумя Read, одиночный ReadLn; получал сразу же конец строки и не приводил к ожиданию нажатия Enter. А с переменной он должен пропустить все незначащие символы, в которые входят и переводы строк. Для исправления можно выше воспользоваться ReadLn вместо Read или чистить принудительно ввод перед ReadLn при помощи SeekEOF (который не везде есть).

Что делает программа

Основы программирования 2.0

Вернёмся к компьютерам традиционным. То есть к ЭВМ — электронно-вычислительным машинам.

Подробно расписывать принципы загрузки программ в память и их выполнения я не буду. Это описано в книге Как стать программистом.

Здесь вам нужно только понять, что компьютер работает с какими-то данными. И любая программа получает какие-то входные данные, обрабатывает их по заданным алгоритмам, и выдаёт результат (выходные данные).

Давайте попробуем добить наш пример с походом за молоком.

Входные данные

Как вы уже знаете, в программу нужно передать какие-то данные для обработки. В нашем случае входными данными будут:

  1. Деньги из тумбочки
  2. Информация о погоде
Обработка данных
  1. Программа определяет погоду, и тепло одевается, если на улице холодно
  2. Программа идёт в магазин
  3. Программа меняет деньги на молоко
  4. Программа возвращается домой
Выходные данные
  1. Молоко
  2. Сдача в тумбочке

Важный вывод, который вы должны понять и запомнить:

Программа получает входные данные, обрабатывает их по заданным алгоритмам, и выдаёт результат.

Разумеется, данные — это понятие растяжимое. Вот с этим растяжимым понятием мы и будем разбираться в следующих статьях.

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

Начало. Тексты программ

Это — самая первая программа на любом языке программирования.

Вычисление площади круга

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: Программы и алгоритмы для начинающих

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *