Добавлен: 31.03.2023
Просмотров: 322
Скачиваний: 1
В большинстве языках функции имеют один вид, но на языке паскаля мы имеем несколько видов procedure и function. Их различие в том, что procedure ничего не возвращает при ее вызове в главной части программы, в отличии от function. Их заголовки выглядят так:
procedure имя (параметры);
function имя (параметры): тип результата;
Каждая функция должна быть как-то названа, на английском и чаще всего иметь смысл ее работы. Так же в функции можно передать параметры из главной функции, чтобы она их обработала, но это вовсе не обязательно. Перед тем, как передать ей значения, необходимо их описать в скобках после имени функции. Например, мы передаем в функцию число 4, и чтобы программа правильно работала нужно в скобке указать имя_переменной: тип переменной. Если функция возвращает значение, после ее вызова нужно указать тип данных, которые должны быть возвращены и их можно будет присвоить переменной в главной части кода, только если типы совпадают.
Приведем пример работы с функциями:
var num, f: integer;
function fact (i:integer): integer;
var n: integer;
begin
n := 1;
while i > 0 do begin
n := n * i;
i := i - 1
end;
fact := n
end;
begin
write ('Введите число: ');
readln (num);
f := fact (num);
writeln ('Факториал числа ', num, ' = ', f);
end.
Данная программа вычисляет факториал из числа, которое мы ввели.
Результат выполнения программы:
Введите число: 4
(вывод) Факториал числа 4 = 24
3.3 Массивы.
Массивы — это структура данных в виде набора компонентов, которые располагаются друг за другом и имеют один тип данных.
Если у нас есть определенное количество элементов, например, дни недели, то не обязательно создавать для каждого дня отдельную переменную, проще будет вложить их всех в одну структуру данных, которая и называется массив, и он будет иметь строчный тип данных. Обращаться к элементам массива можно с помощью индекса. Например, имеем массив arr с размером 11, и обратиться к первому элементу массива arr мы сможем с помощью команды arr[1].
Массивы бывают одномерные, как с примером дней недели, так и двумерные, как например матрицы.
Рассмотрим пример работы с массивами:
var ch: array [1..11] of integer;
i: integer;
begin
for i := 1 to 11 do
ch[i] := i;
for i := 1 to 11 do
writeln(ch[i]);
end.
Данная программа заполняет массив размером 11 элементами, соответствующие своему индексу. После того, как массив будет заполнен, он выведет все его элементы.
3.3 Работа с файлами.
Сейчас мы поговорим о работе с файлами на языке Pascal. Во многих языках программирования предусмотрена работа с файлами, для того, чтобы сохранять данные на внешние носители и извлекать их.
Для работы с файлами должна быть определена переменна файлового типа, через которую происходит связь с файлом. Если на нашем файле хранится список целых чисел, то с помощью следующей программы мы сможем получить к ним доступ:
f: file of integer;
Где f имя переменной типа file, которая принимает значения типа integer.
Операции с файлами подразумевает следующий список действий:
- установочные и завершающие операции;
- ввод и вывод;
- перемещение по файлу;
- специальные операции.
Рассмотрим пример создания файла и записи в него данных:
var
f: file of char;
ch: char;
i, n: integer;
begin
assign (f, 'C:\Users\Ruben\Desktop\Pascal\file.txt');
rewrite (f);
write ('Количество символов: ');
readln (n);
for i:=1 to n do begin
write ('Введите символ для ввода его в файл: ');
readln (ch);
write (f, ch);
end;
close (f);
end.
В этой программе мы задаем программе количество символов, которые будут вводиться в файл. Для начала объявим переменную типа file и дадим ей имя f, после чего нам необходимо определить где этот файл находиться, или же указать, где он будет находится с помощью команды assign, в которую передается имя переменной с типом файла и месторасположение файла. Если такого файла в указанном месте нет, то он создастся автоматически. После этого мы командой rewrite(f) открываем этот файл в режиме записи, после чего программа будет запрашивать символы, которые в последующем будут записаны в файл с помощью команды write (f, ch), в которую мы передаем имя переменной файла и символ. Если на этом файле было что-то записано, то оно будет удалено и записано то, что мы в него вводим. В конце программы необходимо закрыть файл командой close (f), для того, чтобы содержание файла осталось в целостности и не было ошибок.
Я создал на рабочем столе папку, которая называется Pascal и скопировал ее адрес. Изначально файла file.txt у меня там не было, поэтому он был создан. Вот что получилось у меня в ходе работы программы:
Количество символов: 5
Введите символ для ввода его в файл: H
Введите символ для ввода его в файл: e
Введите символ для ввода его в файл: l
Введите символ для ввода его в файл: l
Введите символ для ввода его в файл: o
Пример работы с чтением данных из файла:
var
f: file of char;
c: char;
begin
assign (f, 'C:\Users\Ruben\Desktop\Pascal\file.txt');
reset (f);
while not eof (f) do begin
read (f, c);
write (c);
end;
close (f);
end.
Эта программа читает содержимое файла и выводит в нашу консоль. Командой reset (f) мы открываем файл в режиме чтения. Цикл while будет посимвольно пробирать содержимое файла до тех пор, пока не наткнется на конец файла с помощью команды eof (f), которая возвращает true, если конец файла был найден. Командой read (f, c) мы записываем в переменную с символы и выводим их на экран. И в конце программы не забываем закрыть файл.
3.4 Записи.
Записи – это структура, которое имеет определенное количество полей. Каждое поле может иметь один тип данных. Общий вид описания типа record:
type t = record
id11, id12, …: type1;
id21, id22, …: type2;
……………….
end;
Эта очень удобная структура, с помощью которой можно сделать код намного удобнее и профессиональнее.
Допустим у нас есть телевизор, но мы знаем, что у него могут быть разные параметры и особенности (плазма, цифровой, размер, с доступом интернет и др.), и не нужно для каждого телевизора создавать столько переменный, сколько необходимо для описания его характеристик. С помощью структуры record мы сможем создать зафиксированное количество переменных, которые будут отображать характеристики телевизоров.
Допустим у нас есть телевизор Samsung и Philips , и у каждого есть одинаковое количество характеристик, но они все отличаются и мы сможем в разделе var создать две переменные, которые будут иметь имена телевизоров с типом данных record, которое мы создали изначально и дали ему какое то название. После этого каждой модели телевизора мы сможем присвоить характеристику, например, диагональ, через точку, после которой будет название переменной из записи.
Рассмотрим пример работы с записями:
type birth = record
month: 1..12;
day: 1..31;
year: integer
end;
var
mather: birth;
begin
mather.day := 9;
mather.month := 2;
mather.year := 1973;
writeln ('Дата рождения мамы ', mather);
end.
В этой программе я создал запись, которая называется birth, которая имеет 3 поля: month (от 1 до 12), day (от 1 до 12), year (любое целое число), и после этого в разделе var создал переменную mother с типом данных записи birth. После этого каждой переменной дал значение и выписал целую переменную типа записи, и получил следующее: Дата рождения мамы (2,9,1973). Так я бы мог создать список всех своих родных с помощью этой записи, не создавая для каждого члена своей семьи переменную, которая бы содержала в имени что она означает и имя родственника.
Небольшой вывод по пройденной главе.
В этой главе я показал более расширенные действия в языке Pascal, но это далеко не все, на что способен этот язык. Мы рассмотрели, как создавать функции, их предназначение, массивы, как можно работать с данными не только из консоли, с помощью переменной типа file, немного познакомились с ООП (Объектно-ориентированным программированием) в которое входит работа с записями.
Заключение
В заключение я бы хотел подвести итоги моей курсовой работы. Мне пришлось прочитать много статей и просмотреть многие сайты в поисках полезной, а главное актуальной и правдивой информации, но все-таки большую часть я опирался на собственные знания, которые у меня остались еще со средней школы. Честно говоря, мне не нравиться заниматься написанием больших текстов, но после проделанной работы я закрепил и освежил свои знания, которые, я уверен, в будущем, как программисту будут мне очень полезны.
Мне очень нравится заниматься программированием, и я рад, что нашел свое занятие в этой жизни, хоть и путь программиста совсем не легок, в общем как и в остальных сферах, если ты планируешь стать профессионалом своего дела и состоятся.
Список литературы
- https://ru.wikipedia.org/wiki/Алгол_68 - Википедия
- https://ru.wikipedia.org/wiki/Паскаль_(язык_программирования) – Википедия
- https://kvodo.ru/istoriya-yazyka-paskal.html-Kvodo (Computing Science & Discrete Match)
- https://pandia.ru/text/78/429/80575.php - Pandia
- https://pas1.ru – Мой основной источник для написания этой курсовой
Приложение
Как я и обещал, я прикрепляю картинки внешнего вида моей 2D игры, написанной на Java
Меню:
Инструкция:
Сама игра:
-
конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи. ↑
-
процедурный императивный высокоуровневый язык программирования, потомок языка Алгол, существенно доработанный. Разрабатывался в период 1964—1968 годов. Позиционировался как универсальный язык для описания произвольных алгоритмов обработки данных высокой сложности. Отличается большим объёмом, богатством возможностей и сложностью синтаксиса. ↑
-
это программа, которая переводит текст, написанный на языке программирования, в набор машинных кодов. ↑