Учебная работа. Курсовая работа: Паскаль язык профессионального программирования
ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ технический УНИВЕРСИТЕТ
ФИЛИАЛ В г. БРАТСКЕ
Информатика и программирование
Курсовая работа
Выполнил:
Студент гр. ПИ-03-Дн
Научный управляющий:
С.т. педагог
Братск 2004
Введение
Паскаль – язык проф программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан в 1968–1971 гг. Никлаусом Виртом, для обучения студентов способам разработки программ, таковым как «программирование сверху вниз», «структурное программирование» и т. д. Вирту не приглянулся не один из имеющихся на тот момент языков, и в 1968 году он приступил к разработке собственного собственного. 1-ая версия языка была сотворена для компа CDC 6000.Благодаря собственной четкости, логичности и остальным особенностям Паскаль навечно занял свою нишу, являясь красивым языком для обучения программированию. Паскаль употреблялся и для разработки суровых программ- приложений. Шутили, что Вирт разработал игрушку, но почти все отнеслись к ней очень серьезно
Потом возникли разные версии языка и его расширения. Более известным расширением стал пакет Турбо Паскаль конторы Borland, показавшийся в 1983 году и сходу ставший событием в мире компьютерных технологий.
Турбо Паскаль – это система программирования, сделанная для увеличения свойства и скорости разработки программ (80-е гг.). слово Турбо в заглавии системы программирования – это отражение марки фирмы-разработчика Borland International (США
1-ое упоминание о нем содержалось в рекламе размещенной в журнальчике Byte, а сам пакет предназначен для операционной системы CP/M. Сначала 1984 года он был перенесен в среду MS-DOS и заполучил гигантскую популярность. С того времени возникло несколько версий Турбо Паскаля, последняя- седьмая.
I. Преобразование и построение матриц.
Массив – это совокупа объектов, состоящая из фиксированного упорядоченного числа частей, имеющих один и этот же тип.
Массивы могут быть одномерными и многомерными (двух-, трехмерными и т. д.). Примером одномерных массивов быть может перечень фамилий учеников класса, многомерных — таблица умножения, потрясающий журнальчик, аттестат зрелости.
Элементы, образующие массив, упорядочены таковым образом, что любому элементу соответствует номер (индекс), определяющий его положение в общей последовательности. Доступ к любому элементу осуществляется путём индексирования.
Для описания массива употребляется словосочетание array of (массив из) и имеет вид:
array [тип индекса] of <тип>
Тип индекса – хоть какой порядковый номер, определяющий границы конфигурации значений индекса.
Описание массива задается последующим образом:
<имя типа> = array [тип индекса] of <тип данных>;
mas=array [1..m] of integer; {массивиз m целыхчисел}
digit = array [0 .. 9] ofchar; {массив 10 знаков, имеющих порядковые номера от 0 до 9}
matrix = array [byte] ofstring; {массив 256 строк, пронумерованных с 0 до 255}
Тип данных – это числа посреди которых бывают константы и переменные. Они могут быть разных типов:
· целыечисла(byte, shortInt, Word, integer, longInt);
· действительные числа (real);
· символьный тип чисел (char);
· строковый тип чисел (string);
· логический тип чисел (boolean);
· сложные типы чисел (комбинированный (record), множественный (set) и остальные).
. количество частей именуется размером массива. Тип частей описывает тип массива. Размер и тип массива указываются при его описании, при этом размер быть может указан или определенным значением, или ранее определенной константой. Номер элемента именуется индексом. Индексы могут быть целыми положительными константами либо целыми переменными. Чтоб обратиться к некому элементу массива, необходимо с идентификатором массива в скобках указать индекс элемента.
Но нередко данные могут быть организованы в виде таблицы (матрицы), где размещение каждой переменной определяется номером строчки и номером столбца. к примеру, пространство в зрительном зале задается указанием номера ряда и номером места в этом ряду. Такие данные комфортно обрисовать как двумерный массив. В отличие от одномерного массива любому элементу двумерного массива соответствует пара индексов. 1-ый индекс – это номер строчки, а 2-ой – номер столбца, где размещен элемент массива.
Размер двумерного массива задается парой чисел: M*N, где M – число строк, а N – число столбцов в таблице.
Пусть задан двумерный массив Matr, имеющий размер 10*20. Этот массив на языке Паскаль быть может описан последующим образом:
Var
Matr : array [1..10,1..20] of integer;
тогда
Matr[5,7] – элемент, расположенный в 5-ой строке и в 7-ом столбце.
Неважно какая константа, переменная, объект, также огромное количество допустимых операций, которые применимы к объекту. Не считая того, тип описывает и формат внутреннего представления значения объекта.
Отличительной индивидуальностью массивов будет то событие, что все их составляющие сущность данные 1-го типа (может быть, структурированного); эти составляющие можно просто упорядочить и обеспечить доступ к хоть какому из их обычным указанием его порядкового номера
Цель задания:
Даны целочисленная матрица размера nx3, целые числа k, l (1<=k<=n, 1<=l<=n, k ≠1). Конвертировать матрицу так , чтоб строчка с начальным номером k конкретно следовала за строчкой с начальным номером l, сохранив порядок следования других строк.
Блок схема:
Решение:
Program perestanovka;
Uses Crt;
Var a: array[1..5,1..3] of integer;
i,j,k,l,n,t:integer;
Begin
writeln(‘Введитечисло’);
readln(n);
ClrScr;
for i:=1 to n do
Begin
for j:=1 to 3 do
Begin
writeln(‘Введитечисло:’);
readln(a[i,j]);
End;
End;
writeln(‘Исходныймассив’);
for i:=1 to n do
Begin
for j:=1 to 3 do
write(a[i,j]:4);
writeln;
End;
writeln;
write(‘k=’);
readln(k);
write(‘l=’);
readln(l);
if k<l then
Begin
for i:=k to l-1 do
Begin
for j:=1 to 3 do
Begin
t:=a[i,j];
a[i,j]:=a[i+1,j];
a[i+1,j]:=t;
End;
End;
End
else
Begin
for i:=k downto l+2 do
Begin
for j:=1 to 3 do
Begin
t:=a[i,j];
a[i,j]:=a[i-1,j];
a[i-1,j]:=t;
End;
End;
End;
writeln(‘Перестановленныймассив’);
for i:=1 to n do
Begin
for j:=1 to 3 do
write (a[i,j]:4);
writeln;
End;
End.
II. Работа с комбинированными типами данных.
Цель задания:
1. Получение способностей в организации ввода/вывода значений комбинированных типов данных.
2. Получение практических способностей программирования задач с внедрением записей.
1.1ДАННЫЕ — информация, представленная в формализованном виде, что обеспечивает возможность ее хранения, обработки и передачи.
Программки на языке Паскаль имеют блочную структуру:
1) Блок типа PROGRAM – имеет имя, состоящее лишь из латинских букв и цифр. Его присутствие не непременно, но рекомендуется записывать для резвого определения подходящей программки посреди остальных листингов.
2) Программный блок, состоящий в общем случае из 7 разделов:
•раздел описания модулей (uses);
•раздел описания меток (label);
•раздел описания констант (const);
•раздел описания типов данных (type);
•раздел описания переменных (var);
•раздел описания процедур и функций;
•раздел описания операторов.
Общая структура программки на языке Паскаль последующая:
Рrogram
..; {заголовок программки}
Uses …; {раздел описания модулей}
Var ..; {раздел объявления переменных}
…
Begin {начало исполнительной части программки}
… {последовательность
… операторов}
End. {конец программки}
2.1 Постановка задания:
Составить перечень учебной группы, включающей 25 человек. Для всякого студента указать дату рождения, год поступления в институт, курс, группу, оценки всякого года обучения. Информацию о любом учащемся оформить в программке в виде записи. совокупа записей соединить в массив.
Составить программку, которая обеспечивает ввод приобретенной инфы, распечатку её в виде таблицы, также распечатку инфы согласно определенному варианту.
Вариант: Упорядочить перечень студентов по среднему балу и распечатать его.
Решение:
Program spisok_grupp;
Uses Crt ;
Const kurs=3;
Const kol=5;
Type
sved=record
famil:string[25];
datar:string[8];
god: integer;
gruppa: integer;
ocenki:array[1..3,1..5] of integer;
srball:array[1..25] of real;
End;
Var
spisok: array[1..25] of sved;
i,i1,j, s,mesto,n,g:integer;
max,t:real;
q:string[25];
Begin
ClrScr;
writeln(‘Введите количество учеников’);
readln(n);
for i:=1 to n do
With spisok[i] do
Begin
Writeln (‘Фамилия ‘,i,’ студента’);
Readln (famil);
Writeln(‘Датарождения’);
Readln (datar);
Writeln (‘Годпоступления’);
Readln (god);
Writeln (‘Группа’);
Readln (gruppa);
s:=0;
for i1:=1 to kurs do
begin
writeln(‘Оценки ‘,i1,’ года‘);
for j:=1 to kol do
Begin
Writeln (j,’ Предмет’);
Readln (ocenki[i1,j]);
s:=s+ocenki[i1,j];
End;
end;
srball[i]:=s/(kol*kurs);
ClrScr;
End;
writeln(‘Фамилия’:8,’Дата рождения’:16,’Год поступления’:18,’Курс’:7,’Группа’:8);
for i:=1 to n do
begin
with spisok[i] do write(famil:8,datar:16,god:18,kurs:7,gruppa:8);
writeln;
writeln;
for g:=1 to kurs do
begin
write(g,’ год:’);
for j:=1 to kol do
with spisok[i] do write(ocenki[g,j]:4);
writeln;
end;
with spisok[i] do writeln(‘Среднийбал =’,srball[i]:6:2);
writeln;
end;
writeln;
writeln(‘Подряд’);
for j:=1 to n do
Begin
max:=spisok[j].srball[j];
mesto:=j;
for i:=j to n do
if spisok[i].srball[i]<=max then
Begin
max:=spisok[i].srball[i];
mesto:=i;
End;
t:=spisok[j].srball[j];
spisok[j].srball[j]:=spisok[mesto].srball[mesto];
spisok[mesto].srball[mesto]:=t;
q:=spisok[j].famil;
spisok[j].famil:=spisok[mesto].famil;
spisok[mesto].famil:=q;
with spisok[j] do writeln(famil:8,srball[j]:6:2);
End;
End.
III. Работа с файлами.
Цель задания:
1. исследование файловых типов.
2. Получение практических способностей работы с файлами.
ФАЙЛ (от англ. file, главные значения), совокупа упорядоченных и взаимосвязанных записей, имеющая описание для идентификации отдельных записей.
Язык Турбо Паскаль дает три вида такового представления:
— типизированные файлы,
— текстовые файлы,
— нетипизированные файлы.
Типизированный файл – последовательность частей 1-го типа.
Текстовый файл – файлы символьных данных. Текстовые файлы имеют тип text.
Нетипизированные файлы – это файлы, поддержка которых осуществляется с очень вероятной скоростью. Введение таковых файлов в систему Турбо Паскаль было вызвано рвением повысить эффективность программ, участвующих в интенсивном обмене с наружными наборами данных.
Для работы с файлами употребляются последующие функции:
— Assign – функция, ассоциирующая имя файла с некой переменной, с которой и идет следующая работа.
— Reset – функция, открывающая уже имеющийся файл для чтения из него.
— Rewrite – функция, создающая новейший файл, либо перезаписывающая старенькый.
— Readln – чтение из обозначенного файла строчки с переходом на последующую строчку.
— Writeln – запись в обозначенный файл строчки с переходом на последующую строчку.
Совершенно, файл рассматривается не попросту как несколько строк, как запись (record), что существенно упрощает работу с файлами.
Поставленная задачка:
Приготовить данные и организовать ввод данных в файл. Организовать чтение файла и вывод подходящей инфы.
Дан файл f, содержащий разные даты. Любая дата – это число, месяц и год. Год с минимальным номером.
Решение:
program spisok;
uses crt;
var f:text;
name,txt,s,a: string;
s1,min,y:integer;
begin
clrscr;
write(‘Введите имя файла для записи текста:’);
readln(name);
writeln;
assign(f,name);
rewrite(f);
repeat
write(‘введитедату:’);
readln(txt);
writeln(f,txt);
until txt=»;
close (f);
writeln;
reset (f);
min:= 9999;
while not eof(f) do
Begin
readln (f,a);
s:=copy(a,7,4);
val(s,s1,y);
if (s1<min) and (s1<>0) then min:=s1;
end;
writeln(‘меньший год:’,min);
close (f);
end.
]]>