Помощь в написании студенческих работ
Антистрессовый сервис

Программирование на языке высокого уровня

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

При выполнении курсовой работы необходимо показать навыки использования различных структур алгоритмов: линейных, разветвляющихся, циклических. В программах использованы различные типы данных: строковый, регулярный, вещественный, файловый, комбинированный, множественный и символьный. Целью данной курсовой работы является ознакомление с интегрированной средой программирования Turbo Pascal… Читать ещё >

Программирование на языке высокого уровня (реферат, курсовая, диплом, контрольная)

Министерство Образования и Науки Российской Федерации Дагестанский Государственный Технический Университет.

Кафедра Информатики.

Курсовая работа.

Программирование на языке высокого уровня.

Выполнил: Ст-т: 1-го курса Гр. У- 342.

Акавов А..

Проверила: Ст. препод. кафедр.

информатики Глебова Л.В.

Махачкала 2004 г.

Аннотация.

Целью данной курсовой работы является ознакомление с интегрированной средой программирования Turbo Pascal, приобретение навыков создания программ любой сложности на одном из языков программирования высокого уровня (Pascal), с использованием современных методов технологии программирования:

структурное программирование;

пошаговая детализация;

иерархическая декомпозиция.

Важной задачей разработки курсового проекта является реализация на практике принципа максимальной эффективности, экономичности и продолжительности срока использования программы, что значительно увеличивает жизненный цикл программы (ЖЦП) и повышает потребительские свойства программы.

Жизненный цикл программы состоит из двух периодов:

период разработки, состоит из трех стадий: предпроектная стадия, стадия проектирования, стадия внедрения;

период эксплуатации.

Цель курсовой работы — разработка программы с учетом потребительских свойств:

функциональная полнота, т. е. программа выполняет все, что задумано;

комфорт в эксплуатации, т. е. удобство работы пользователя;

простота в обучении, т. е. пользователь должен легко обучаться работать с программой;

надежность программы, т. е. правильная работа при верных исходных данных.

При выполнении курсовой работы необходимо показать навыки использования различных структур алгоритмов: линейных, разветвляющихся, циклических. В программах использованы различные типы данных: строковый, регулярный, вещественный, файловый, комбинированный, множественный и символьный.

Неотъемлемой целью данной курсовой работы является приобретение навыков отладки всей программы и её отдельно взятых частей; умение составлять техническую документацию к разработанным программным продуктам.

Задания по курсовой работе.

Задание 1.

1) Найти произведение двух массивов C=A (5,3) *B (3,3); D=A (5,3) *R (3,2) и результаты записать в файлы FC и FD.

Матрица, А вводится из файла F1. Матрица В вводится из файла F2. Матрица R вводится из файла F3.

2) 1строку матрицы А, 3 строку матрицы В и 2 строку матрицы R умножить на F, где F —max из минимальных элементов трех матриц А, В, R. Преобразованные матрицы записать в те же файлы.

3) Найти сумму элементов каждого файла. Результат записать в файл F4.

Задание 2.

В файле P1 набрать текст.

1. Сообщить сколько раз встречаются в тексте каждый символ кроме букв.

2. Вывести все символы, не встречающиеся в тексте.

3. Выяснить, можно ли из символов первой и последней строки, используя каждый символ, только один раз, составить фамилию студента.

4. Результат вывести в файл P2.

Задание 3.

а. Создать файл, содержащий сведения о количестве изделий категорий А, Б, С, собранных рабочим за месяц. Структура записи имеет поля: фамилия сборщика, наименование цеха, количество изделий по категориям, собранных рабочим за месяц.

Количество записей —произвольное.

б. Считая заданными значения расценок SА, SБ, SС за выполненную работу по сборке единицы изделия категорий А, Б, С соответственно, выдать на печать следующую информацию:

ь общее количество изделий, собранных рабочими цеха Х;

ь ведомость заработной платы рабочих цеха Х;

ь средний размер заработной платы работников цеха Х.

ИНФОРМАЦИОННАЯ ТАБЛИЦА.

Задание 1.

Файл.

Содержимое файла до начала выполнения программы.

Содержимое файла после выполнения программы.

F1.txt.

A (5,3).

A (5,3), 0.15 чисел.

F2.txt.

B (3,3).

B (3,3), 0.9 чисел.

F3.txt.

R (3,2).

R (3,2), 0.6 чисел.

F4.txt.

НЕТ.

Три числа S1, S2,S3.

FD.TXT.

НЕТ.

D (5,2), 0.10 чисел.

FC.TXT.

НЕТ.

C (5.3), 0.15 чисел.

Задание 2.

Файл.

Содержимое файла до начала выполнения программы.

Содержимое файла после выполнения программы.

Р1.txt.

Текст.

Текст.

р2.txt.

;

· Таблица:

Символы кроме букв-количество.

· Все символы, которые невстречаются в тексте.

· 'можно' или 'нельзя'.

Задание 3.

Файл.

Содержимое файла до начала выполнения программы.

Содержимое файла после выполнения программы.

d.txt.

Клавиатура.

5 записей.

· фамилия.

· цех.

· число окон.

· число столов.

· заработная плата Х.

5 записей.

· фамилия.

· цех.

· число окон.

· число столов.

· заработная плата.

;

Y.TXT.

Общее количество изделий собранных рабочими цеха Х Таблица.

< Фамилия >-<�Заработная плата >

Средний размер заработной платы рабочих цеха Х.

;

ТЕСТОВЫЙ ПРИМЕР.

Задание 1.

Файл.

Содержимое файла до начала выполнения программы.

Содержимое файла после выполнения программы.

F1.txt.

1 2.

А (3,2)= 0 1.

1 0.

0 0.

0 1.

1 0.

F2.txt.

1 0 1.

В (3,3)= 2 3 0.

5 7 8.

1 0 1.

2 3 0.

0 0 0.

F3.txt.

1 0.

R (3,2)= 1 0.

2 3.

1 0.

0 0.

2 3.

F4.txt.

;

FC.

;

5 6 1.

2 3 0.

0 0 0.

FD.

;

3 2.

2 0.

0 0.

Задание 2.

Файл.

Содержимое файла до начала выполнения программы.

Содержимое файла после выполнения программы.

Р1.txt.

Создать файл, содержащий ведения о количестве изделий категорий собранных рабочим, за месяц.

Создать Создать файл, содержащий ведения о количестве изделий категорий собранных рабочим, за месяц .

Р2.txt.

;

.-1.

-2.

множество символов не встречающихся в тексте: _ ! «# $ % & ' () * + -/ 0 1 2 3 4 5 6 7 8 9:; < = > ?

можно нельзя.

Задание 3.

Файл.

Содержимое файла до начала выполнения программы.

Содержимое файла после выполнения программы.

d.txt.

Клавиатура.

гитинов Столярный цех.

магомедов сборочный цех.

Ризаханов Столярный цех.

1200столярный цех.

гитинов Столярный цех.

магомедов жестяной цех.

Ризаханов Столярный цех.

-;

Y.TXT.

;

Общее количество изделий собранных рабочими столярного цеха.

Таблица Буре-1200.

Иванов-1400.

Фетисов-1000.

Средний размер заработной платы рабочих столярного цеха.

Укрупненная блок-схема.

Детализированная блок-схема.

Описание подпрограмм.

1) п/п ассигнует файл на диске с названием ADRES, ставит в соответствие файловую переменную A1, открывает его для чтения, вводит из него массив NAME (I, J) и закрывает файл.

исх. данные: i, j, adres, name.

рез. нет.

PROCEDURE wwod_а (adres: string; i, j: byte; var name: mas);

2) п/п умножает матрицу m1(i, j) на m2(j, i1) в результате получает массив naime (i, i1);

исх.данные;j, I, i1,name, m1, m2.

рез.:нет.

PROCEDURE umn_matrix (i, j, i1:byte; var name, m1, m2:mas);

3) п/п ассигнует файл на диске с названием adres, ставит в соответствие файловую переменную A, открывает его для записи, записывает в файл с названием adres массив name (i, j) и закрывает его.

исх. данные: i, j, name, adres.

рез.: нет.

PROCEDURE zapis (adres: string; i, j: byte; var name: mas);

4) п/п находит S-минимальный элемент матрицы ADR (I, j) и выводит его.

Исх. дан.: i, j, adr.

Рез.:нет.

PROCEDURE S (adr:mas; I, j: byte);

5) п/п находит F-максимальный из минимальных элементов из трёх чисел A, B, C.

Исх. Дан: A, B, C.

Рез:F.

FUNCTION F (A, B, C:real):real;

6) п/п умножает строку I матрицы name (i, j) на число F-максимальное из минимальных элементов записывает преобразованную матрицу в конец файла adres.

исх.данные: I, j.

рез.:name.

FUNCTION UMN (i, j: byte; var name: mas):byte;

7) п/п ассигнует файл на диске с названием ADRES, ставит в соответствие файловую переменную A, открывает его для чтения вычисляет SUM_EL-сумму элементов массива и закрывает его. Результат записывает в файл F4.txt.

исх.данные:adres.

рез.: SUM_EL.

FUNCTION SUM_EL (adres:string):real;

Отладка подпрограмм.

1) п/п ассигнует файл на диске с названием ADRES, ставит в соответствие файловую переменную A1, открывает его для чтения, вводит из него массив NAME (I, J) и закрывает файл.

исх. данные: i, j, adres, name.

рез. нет.

PROCEDURE wwod_а (i, j: byte; adres: string; var name: mas);

Program pp1;

type mas=array[1.3,1.2]of real;

var a: mass ;

procedure wwod_f (i, j: byte;adres:string; var naime: mas);

var n, k: byte;

a1:text;

begin.

assign (a1,adres);

reset (a1);

for n:=1to i do.

for k:=1to j do read (a1,naime[n, k]);

close (a1);

end;

begin.

wwod_a (`fa', 3,2,a);

end.

Исходные данные: Результат: В ручную:

1 2 1 2 1 2.

0 1 0 1 0 1.

1 0 1 0 1 0.

Вывод: Так как результат, выполненный вручную совпадает с результатом выданным подпрограммой, то можно сделать вывод, что подпрограмма работает правильно.

2) п/п умножает матрицу m1(i, j) на m2(j, i1) в результате получает массив naime (i, i1);

исх.данные;j, I, i1,name, m1, m2.

рез.:нет.

PROCEDURE umn_matrix (i, j, i1:byte; var name, m1, m2:mas);

Program pp2;

type mas=array[1.5,1.3] of real;

var f, a, pt:mass;

procedure umn_matrix (i, j, i1:byte;var naime, m1, m2:mas);

var n, k, r:byte;

begin.

FOR n:=1TO I DO.

FOR k:=1TO i1 DO BEGIN.

naime[n, k]: =0;

FOR r:=1 TO J DO.

naime[n, K]: =naime[n, K]+m1[n, r]*m2[r, K];

END;

end;

begin.

umn_matrix (3,3,2,a, pt, f);

end.

Исходные данные: Результат:

1 2 5.0 6.0 1.0.

A= 0 1 PT= 1 0 1 F= 2.0 3.0 0.0.

1 0 2 3 0 1.0 0.0 1.0.

В ручную:

1 2 1 0 1 1*1+2*2 1*0+2*3 1*1+2*0 5 6 1.

0 1 * 2 3 0 = 0*1+1*2 0*0+1*3 0*1+1*0 = 2 3 0.

0 1 1*1+0*2 1*0+0*3 1*1+0*0 1 0 1.

Вывод: Так как результат выполненный вручную совпадает с результатом выданным подпрограммой, то можно сделать вывод, что подпрограмма работает правильно.

3) п/п ассигнует файл на диске с названием adres, ставит в соответствие файловую переменную A, открывает его для записи, записывает в файл с названием adres массив name (i, j) и закрывает его.

и закрывает файл.

исх. данные: i, j, name, adres.

рез.: нет.

PROCEDURE zapis (adres: string; i, j: byte; var name: mas);

Program pp3;

type mas=array[1.5,1.3] of real;

var f: mass;

procedure zapis (adres:string i, j: byte;;naime:mas);

var a1: text;

n, k: byte;

begin.

assign (a1,adres);

append (a1);

writeln (a1);

for n:=1to i do begin.

for k:=1to j do write (a1,naime[n, k]);

writeln (a1);

end;

close (a1);

end;

begin.

zapis (`ff', 3,3,f);

end.

Исходные данные: Результат: В ручную:

Нет. 5.0 6.0 1.0 5 6 1.

2.0 3.0 0.0 2 3 0.

1.0 0.0 1.0 1 0 1.

Вывод: Так как результат выполненный вручную совпадает с результатом выданным подпрограммой, то можно сделать вывод, что подпрограмма работает правильно.

4) п/п находит s-минимальный элемент матрицы ADR (I, j) и выводит его.

Исх. дан.: i, j, adr.

Рез.:нет.

PROCEDURE S (adr:mas; I, j: byte);

Program pp4;

type mas=array[1.3,1.3] of real;

var f, x, y:mas;

procedure s (i, j: byte;adr:mas);

var n, k: byte;

begin.

min:=adr[1,1];

for n:=1 to i do.

for k:=1 to j do.

if min>adr[i, j] then min:=adr[i, j];

end;

Begin.

S (3,3,f);

S (2,2,x);

S (2,2,y);

End.

Исходные данные: Результат: В ручную.

4 5 6 3 3.

6 8 5.

3 6 7.

4 6 1 1.

4 1.

1 1 1 0.

0 4.

Вывод: Так как результат выполненный вручную совпадает с результатом выданным подпрограммой, то можно сделать вывод, что подпрограмма работает правильно.

5) п/п находит F-максимальный из минимальных элементов из трёх чисел A, B, C.

Исх. Дан: A, B, C.

Рез:F.

FUNCTION F (A, B, C:real):real;

Program pp5.

var.

function F (A, B, C:real):real;

begin.

s (a, 5,3);

f:=min;

s (b, 3,3);

if f<=min then f:=min;

s (r, 3,2);

if f<=min then f:=min;

end;

begin.

F (3, 1,0);

End.

Исходные данные: Результат: В ручную:

3 1 0 3.

Вывод: Так как результат, выполненный вручную, совпадает с результатом выданным подпрограммой, то можно сделать вывод, что подпрограмма работает правильно.

6) п/п умножает строку I матрицы name (i, j) на число F-максимальное из минимальных элементов записывает преобразованную матрицу в конец файла adres.

исх.данные: I, j.

рез.:name.

FUNCTION UMN (i, j: byte; var name: mas):byte;

Program pp6;

function umn (i, j: byte;var naime: mas):byte;

var n: byte;

begin.

for n:=1to J do.

naime[I, N]: =naime[I, N]*f;

end;

begin.

umn (2,1,A);

end.

Исходные данные: Результат: В ручную:

3 1 0 9.0 3.0 0.0 9 6 0.

4 3 5 4.0 3.0 5.0 4 3 5.

Вывод: Так как результат, выполненный вручную, совпадает с результатом выданным подпрограммой, то можно сделать вывод, что подпрограмма работает правильно.

7) п/п ассигнует файл на диске с названием ADRES, ставит в соответствие файловую переменную A, открывает его для чтения вычисляет SUM_EL-сумму элементов массива и закрывает его. Результат записывает в файл F4.txt.

исх.данные:adres.

рез.: SUM_EL.

FUNCTION SUM_EL (adres:string):real;

Program pp4;

function SUM_el (adres:string):byte;

var a: text;

naime, u: real;

begin.

u:=0;

assign (a, adres);

reset (a);

while not eof (a) do begin.

read (a, naime);

u:=u+naime;

end;

close (a);

assign (a,'F4.txt');

append (a);

writeln (a, u);

close (a);

end;

begin.

SUM_EL:=sum (2,3).

end.

Исходные данные: Результат: В ручную:

1 2 3 12.0 12.

2 3 1.

Вывод: Так как результат, выполненный вручную, совпадает с результатом выданным подпрограммой, то можно сделать вывод, что подпрограмма работает правильно.

Описание подпрограмм задания 2.

Постановка задачи: ассигнуем файловые переменные f и fn с физическими файлами p1. txt и p2.txt. Файл p1. txt открываем для чтения. Файл p2. txt открываем для записи. Считаем количество символов в тексте кроме букв. Закрываем физические файлы f и fn.

Исходные данные: B.

Результат: нет.

Заголовок функции:

Procedure z21(b:byte);

Постановка задачи: ассигнуем файловые переменные f и fn с физическими файлами p1. txt и p2.txt. Открываем файл p1. txt для чтения, а файл p2. txt для добавления в его конец символов, не встречаюшихся в тексте. Пока нет конца файла, считываем символы из файла p1.txt. Находим множество sc. Затем проверяем, если символ из sc, то записываем его в файл p2.txt. Закрываем физические файлы.

Исходные данные: B.

Результат: нет.

Заголовок функции:

Procedure z22(b:byte);

Постановка задачи: ассигнуем файловые переменные f и fn с физическими файлами p1. txt и p2.txt. Открываем файл p1. txt для чтения, а файл p2. txt для добавления в его конец результата, можно ли из символов первой и последней строки составить фамилию студента. Находим результат вычислений. Закрываем физические файлы.

Исходные данные: B.

Результат: нет.

Заголовок функции:

Procedure z23(b:byte);

Отладка подпрограмм..

Подпрограмма 1.

Постановка задачи: ассигнуем файловые переменные f и fn с физическими файлами p1. txt и p2.txt. Файл p1. txt открываем для чтения. Файл p2. txt открываем для записи. Считаем количество символов в тексте кроме букв. Закрываем физические файлы f и fn.

Исходные данные: B..

Результат: нет..

Заголовок функции:

Procedure z21(b:string);

П/П читает символы в тексте из файла p1. txt, считает их количество кроме букв и выводит полученные результаты в файл p2.txt.

Программа для отладки.

Program otl1;

procedure z21(b:string);

var i, n: byte;

x:array[1.2,1.141]of byte;

c:char;

f, fn: text;

begin.

assign (f,'p1.txt');

assign (fn,'p2.txt');

reset (f);

rewrite (fn);

for i:=1 to 64 do x[1,i]: =i;

for i:=91 to 96 do x[1,i-25]: =i;

for i:=123 to 127 do x[1,i-50]: =i;

for i:=176 to 255 do x[1,i-97]: =i;

for i:=240 to 255 do x[1,i-144]: =i;

for i:=1 to 141 do x[2,i]: =0;

while not eof (f) do.

begin.

read (f, c);

n:=ord (c);

x[2,n]: =x[2,n]+1;

end;

writeln (fn,"количество кимволов в тексте кроме букв");

for i:=1 to 141 do.

if x[2,i]<>0 then writeln (fn, chr (x[1,i]),'—->', x[2,i],' ');

close (f);

close (fn);

end;

begin.

z21(`p2.txt');

end.

Результаты, полученные ПК в файле p2. txt..

кол-во символов встречающихся в тексте кроме букв.

—->20.

—->2.

.—->1.

Результаты, полученные вручную..

кол-во символов встречающихся в тексте кроме букв.

—->20.

—->2.

.—->1.

Вывод:

Поскольку результаты, полученные ПК в файле p2. txt, совпадают с результатами полученными вручную, можно предположить, что программа работает правильно.

Подпрограмма 2.

Постановка задачи: ассигнуем файловые переменные f и fn с физическими файлами p1. txt и p2.txt. Открываем файл p1. txt для чтения, а файл p2. txt для добавления в его конец символов, не встречаюшихся в тексте. Пока нет конца файла, считываем символы из файла p1.txt. Находим множество sc. Затем проверяем, если символ из sc, то записываем его в файл p2.txt. Закрываем физические файлы.

Исходные данные: B.

Результат: нет.

Заголовок функции:

Procedure z22(b:byte);

П/П читает символы в тексте из файла p1. txt и добавляет в конец файла p2. txt символы не встречающиеся в тексте Программа для отладки..

Program Str;

procedure z22(b:string);

var sc: set of char;

c:char;

i:byte;

f, fn: text;

begin.

assign (f,'p1.txt');

assign (fn,'p2.txt');

reset (f);

append (fn);

sc:=[chr (1).chr (255)];

writeln (fn,'символы не встречающиеся в тексте');

while not eof (f)do.

begin.

read (f, c);

if c in sc then sc:=sc-[c];

end;

for i:=0 to 255 do.

if chr (i) in sc then writeln (fn, chr (i),' ');

close (f);

close (fn);

end;

begin.

z22(`p2.txt');

end.

Результаты, полученные ПК в файле p2.txt.

символы не встречающиеся в тексте.

_ ! «# $ % & ' () * + -/ 0 1 2 3 4 5 6 7 8 9:; < = >? @ A B C D E F G H J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z ~  А Б В Г Д Е Ж З И Й К Л М H О Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я — - - ¦ + ¦ ¦ ¦ ¦ - - - L + T + - +¦ ¦ L г ¦ T ¦ = + ¦ ¦ T T L L — г + + - - - - ¦ ¦ - ф ш щ ъ ю Ё ё Є є Ї ї Ў ў ° • · № ¤.

Результаты, полученные вручную.

символы не встречающиеся в тексте.

_ ! «# $ % & ' () * + -/ 0 1 2 3 4 5 6 7 8 9:; < = >? @ A B C D E F G H J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z ~  А Б В Г Д Е Ж З И Й К Л М H О Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я — - - ¦ + ¦ ¦ ¦ ¦ - - - L + T + - +¦ ¦ L г ¦ T ¦ = + ¦ ¦ T T L L — г + + - - - - ¦ ¦ - ф ш щ ъ ю Ё ё Є є Ї ї Ў ў ° • · № ¤.

Вывод:

Поскольку результаты, полученные ПК в файле a1. txt, совпадают с результатами полученными вручную, можно предположить, что программа работает правильно.

Подпрограмма 3.

Постановка задачи: ассигнуем файловые переменные f и fn с физическими файлами p1. txt и p2.txt. Открываем файл p1. txt для чтения, а файл p2. txt для добавления в его конец результата, можно ли из символов первой и последней строки составить фамилию студента. Находим результат вычислений. Закрываем физические файлы.

Исходные данные: B.

Результат: нет.

Заголовок функции:

Procedure z23(b:byte);

П/П читает символы в тексте из файла p1. txt, проверяет можно ли из символов первой и последней строки составить фамилию студента и добавляет результат в конец файла p2.txt.

Программа для отладки..

Program Pr;

procedure z23(b:string);

var k, fm, c: string;

x:char;

i, kon, kstr: integer;

f, fn: text;

begin.

assign (f,'p1.txt');

assign (fn,'p2.txt');

reset (f);

append (fn);

writeln ('введите фамилию студента');

read (fm);

kstr:=0;

while not eof (f) do.

begin.

if eoln (f) then kstr:=kstr+1;

read (f, x);

end;

close (f);

reset (f);

read (f, c);

for i:=1 to kstr-1 do read (f, x);

read (f, k);

c:=c+k;

kon:=0;

while (kon=0)and (length (fm)>0) do.

if pos (fm[1], c)>0 then.

begin.

delete (c, pos (fm[1], c), 1);

delete (fm, 1,1);

end.

else kon:=1;

if kon=1 then write (fn,'нельзя составить фамилию студента').

else write (fn,'можно составить фамилию студента');

close (f);

close (fn);

end;

begin.

z23(`p2.txt');

end.

Результаты, полученные ПК в файле p2.txt.

можно составить фамилию студента.

Результаты, полученные вручную.

можно составить фамилию студента Вывод:

Поскольку результаты, полученные ПК в файле a1. txt, совпадают с результатами полученными вручную, можно предположить, что программа работает правильно.

Описание подпрограмм задания 3.

П/П по данным, извлеченным из файла d. txt, создает файл y. txt, содержащий фамилию работника, количество собранных изделий и строка определяющая оклад.

Исходные данные: нет Результат: нет.

procedure z3;

Тестовая программа:

program test_z3;

procedure z3;

const n=3;

type zavod=record.

fam:string;

ceh:string;

kol:array['A'.'C']of integer;

end;

var fz, fr: text;

raboch:zavod;c:string;

cena:array['A'.'C']of integer;

k:char;obkol, zarpl, kolr: integer;

srzarpl:real;

begin.

assign (fz,'d.txt');

assign (fr,'rezul.txt');

reset (fz);rewrite (fr);

writeln ('‚введите наименование цеха');

read (c);

writeln ('‚введите цены на товар');

for k:='A' to 'C' do read (cena[k]);

obkol:=0;srzarpl:=0;kolr:=0;

writeln (fr, c,' жҐе');

writeln (fr);

writeln (fr,'‚ введите наименование цеха ');

while not eof (fz) do.

with raboch do.

begin.

zarpl:=0;

readln (fz, fam);

readln (fz, ceh);

for k:='A'to'C'do begin.

if ceh=c then begin.

read (fz, kol[k]);

obkol:=obkol+kol[k];

zarpl:=zarpl+kol[k]*cena[k].

end;

end;

readln (fz);

srzarpl:=srzarpl+zarpl;

if ceh=c then begin.

writeln (fr, fam:25,zarpl:10);

kolr:=kolr+1.

end.

end;

srzarpl:=srzarpl/kolr;

writeln (fr);

writeln (fr,'средняя зарплата =', srzarpl:10:3);

writeln (fr);

writeln (fr,'общее количество изделий=', obkol);

close (fr);close (fz);

end.

Для проверки тестовой программы создаем файл d. txt и записываем в него следующие записи:

Фетисов Столярный цех.

Иванов жестяной цех.

Буре Столярный цех.

Клавиатура — столярный цех Результаты, полученные ПК в файле rezul.txt.

Общее количество изделий собранных рабочими рабочими столярного цеха 229.

Заработная плата рабочих столярного цеха.

Фетисов 1000.

Буре 1200.

Средняя зарплата рабочих столярного цеха 1100.

Результаты, полученные вручную.

Общее количество изделий собранных рабочими столярного цеха 229.

Заработная плата рабочих столярного цеха.

Фетисов 1000.

Буре 1200.

Средняя зарплата рабочих столярного цеха 1100.

Вывод:

Поскольку результат, полученный в файле best. txt после выполнения тестовой программы, совпадает с результатом, полученным вручную, можно сделать вывод, что подпрограмма z3 работает правильно.

turbo pascal програмирование технология.

Основная программа.

program kurcov;

type mas=array[1.5,1.5]of real;

var a, b, c, d, r:mas;

a1:text;

f, min: real;

procedure Z1;

procedure wwod_f (i, j: byte;adres:string; var naime: mas);

var n, k: byte;

a1:text;

begin.

assign (a1,adres);

reset (a1);

for n:=1to i do.

for k:=1to j do read (a1,naime[n, k]);

close (a1);

end;

procedure umn_matrix (i, j, i1:byte;var naime, m1, m2:mas);

var n, k, r:byte;

begin.

FOR n:=1TO I DO.

FOR k:=1TO i1 DO BEGIN.

naime[n, k]: =0;

FOR r:=1 TO J DO.

naime[n, K]: =naime[n, K]+m1[n, r]*m2[r, K];

END;

end;

procedure zapis (i, j: byte;adres:string;naime:mas);

var a1: text;

n, k: byte;

begin.

assign (a1,adres);

append (a1);

writeln (a1);

for n:=1to i do begin.

for k:=1to j do write (a1,naime[n, k]);

writeln (a1);

end;

close (a1);

end;

procedure s (adr:mas;i, j: byte);

var n, k: byte;

begin.

min:=adr[1,1];

for n:=1 to i do.

for k:=1 to j do.

if min>adr[i, j] then min:=adr[i, j];

end;

function u: byte;

begin.

s (a, 5,3);

f:=min;

s (b, 3,3);

if f<=min then f:=min;

s (r, 3,2);

if f<=min then f:=min;

end;

function umn (i, j: byte;var naime: mas):byte;

var n: byte;

begin.

for n:=1to J do.

naime[I, N]: =naime[I, N]*f;

end;

function SUM_el (adres:string):byte;

var a: text;

naime, u: real;

begin.

u:=0;

assign (a, adres);

reset (a);

while not eof (a) do begin.

read (a, naime);

u:=u+naime;

end;

close (a);

assign (a,'F4.txt');

append (a);

writeln (a, u);

close (a);

end;

begin.

wwod_f (5,3,'f1.txt', a);

wwod_f (3,3,'f2.txt', b);

assign (a1,'fc.txt');

rewrite (a1);

close (a1);

umn_matrix (5,3,3,c, a, b);

zapis (5,3,'fc.txt', c);

wwod_f (3,2,'f3.txt', r);

assign (a1,'fd.txt');

rewrite (a1);

close (a1);

umn_matrix (5,3,2,d, a, r);

zapis (5,2,'fd.txt', d);

U;

UMN (5,1,A);

UMN (3,3,B);

UMN (3,2,R);

ZAPIS (5,3,'f1.txt', a);

ZAPIS (3,3,'f2.txt', b);

ZAPIS (3,2,'f3.txt', r);

SUM_el ('f1.txt');

SUM_el ('f2.txt');

SUM_el ('f3.txt');

End;

procedure z2_1(b:string);

var i, n: byte;

x:array[1.2,1.141]of byte;

c:char;

f, fn: text;

begin.

assign (f,'p1.txt');

assign (fn,'p2.txt');

reset (f);

rewrite (fn);

for i:=1 to 64 do x[1,i]: =i;

for i:=91 to 96 do x[1,i-25]: =i;

for i:=123 to 127 do x[1,i-50]: =i;

for i:=176 to 255 do x[1,i-97]: =i;

for i:=240 to 255 do x[1,i-144]: =i;

for i:=1 to 141 do x[2,i]: =0;

while not eof (f) do.

begin.

read (f, c);

n:=ord (c);

x[2,n]: =x[2,n]+1;

end;

writeln (fn,'количество символов встречающихся в тексте');

for i:=1 to 141 do.

if x[2,i]<>0 then writeln (fn, chr (x[1,i]),' - ', x[2,i],' ','штук');

close (f);

close (fn);

end;

procedure z2_2(b:string);

var sc: set of char;

c:char;

i:byte;

f, fn: text;

begin.

assign (f,'p1.txt');

assign (fn,'p2.txt');

append (fn);

reset (f);

sc:=[chr (1).chr (255)];

writeln (fn,'символы не встречающиеся в тексте');

while not eof (f)do.

begin.

read (f, c);

if c in sc then sc:=sc-[c];

end;

for i:=0 to 255 do.

if chr (i)in sc then writeln (fn, chr (i),' ');

close (f);

close (fn);

end;

procedure z2_3(b:string);

var k, fm, c: string;

x:char;

i, kon, kstr: integer;

f, fn: text;

begin.

assign (f,'p1.txt');

assign (fn,'p2.txt');

reset (f);

append (fn);

writeln ('введите фамилию студента');

read (fm);

kstr:=0;

while not eof (f) do.

begin.

if eoln (f) then kstr:=kstr+1;

read (f, x);

end;

close (f);

reset (f);

read (f, c);

for i:=1 to kstr-1 do read (f, x);

read (f, k);

c:=c+k;

kon:=0;

while (kon=0)and (length (fm)>0) do.

if pos (fm[1], c)>0 then.

begin.

delete (c, pos (fm[1], c), 1);

delete (fm, 1,1);

end.

else kon:=1;

if kon=1 then write (fn,'нельзя составить фамилию студента').

else write (fn,'можно составить фамилию студента');

close (f);

close (fn);

end;

procedure Z3;

type work=record.

fam:string[40];

cex:string [50];

okna:integer;

ctol:integer;

zar:integer;

end;

var rab: array [1.6] of work;

fa, fb: text;

k:byte;

s:integer;

srzar:integer;

srzarpl:real;

c:string;

begin.

assign (Fa,'d.txt');

reset (Fa);

for k:=1 to 6 do.

with rab[k] do.

begin.

readln (Fa, fam);

readln (Fa, cex);

readln (Fa, okna);

readln (Fa, ctol);

readln (Fa, zar);

end;

writeln ('vvedite nazvanie cexa');

read (c);

assign (fb,'y.txt');

rewrite (fb);

s:=0;

writeln (fb,'obgee kolichectvo izdelii');

for k:=1 to 6 do.

with rab[k] do if cex=c then begin.

s:=okna+ctol+s;

writeln ('общее количество изделий собранных рабочими столярного цеха=', s:1);

writeln (fb, s);

end;

for k:=1 to 6 do.

with rab[k] do if cex=c then begin.

writeln (fam,' ','=', zar);

writeln (fb, fam,' ','=', zar);

end;

srzar:=0;

for k:=1 to 6 do.

with rab[k] do if cex=c then srzar:=srzar+zar;

srzarpl:=srzar/3;

writeln ('cpednia zarplata=', srzarpl:1);

writeln (fb,'cpednia zarplata');

writeln (fb, srzarpl:1);close (fa);

close (fb);

end;

BEGIN.

Z1;

Z2_1(`p2.txt');

Z2_2(`p2.txt');

Z2_3(`p2.txt');

Z3;

END.

Отладка основной программы.

Результаты, полученные ПК.

Файл Содержимое файла до начала Содержимое файла после Выполнения программы выполнения программы.

1 2 0 0.

F1.TXT A (3,2)= 0 1 0 1.

1 0 1 0.

1 0 1 1 0 1.

F2.TXT B (3,3)= 2 3 0 2 3 0.

5 7 8 0 0 0.

1 0 1 0.

F3.TXT R (3,2)= 1 0 0 0.

2 3 2 3.

F4.TXT ———-7.

3 0.

FD.TXT ———— 2 0.

0 0.

5 6 1.

FC.TXT ————- 3 3 1.

0 0 0.

P1.TXT Текст Текст.

— 1.

— 2.

множество символов не встречающихся в тексте.

P2.TXT ——- можно нельзя гитинов гитинов Столярный цехстолярный цех.

10 10.

87 87.

1000 1000.

D.TXT Магомедов Магомедов сборочный цех сборочный цех.

5 5.

56 56.

1100 1100.

Ризаханов ризаханов Столярный цех столярный цех.

43 43.

9 9.

1200 1200.

Y.TXT ————————- Общее количество изделий.

Гитинов 1000.

Ризаханов 1200.

Средний размер заработной платы.

Результаты полученные в ручную.

Файл Содержимое файла до начала Содержимое файла после.

Выполнения программы выполнения программы.

1 2 0 0.

F1.TXT A (3,2)= 0 1 0 1.

1 0 1 0.

1 0 1 1 0 1.

F2.TXT B (3,3)= 2 3 0 2 3 0.

5 7 8 0 0 0.

1 0 1 0.

F3.TXT R (3,2)= 1 0 0 0.

2 3 2 3.

F4.TXT ———-7.

3 0.

FD.TXT ———— 2 0.

0 0.

5 6 1.

FC.TXT ————- 3 3 1.

0 0 0.

P1.TXT Текст Текст.

— 1.

— 2.

множество символов не встречающихся в текст P2. TXT ——- можно нельзя гитинов гитинов Столярный цех столярный цех.

10 10.

87 87.

1000 1000.

D.TXT Магомедов Магомедов сборочный цех сборочный цех.

5 5.

56 56.

1100 1100.

Ризаханов ризаханов Столярный цех столярный цех.

43 43.

9 9.

1200 1200.

Y.TXT ————————- Общее количество изделий.

Гитинов 1000.

Ризаханов 1200.

Средний размер заработной платы.

Вывод:

Поскольку результаты, полученные ПК в файлах F1. TXT, F2. TXT, F3. TXT, F4. TXT, FC. TXT, FD. TXT, P2. TXT, Y. TXT, совпадают с результатами полученными вручную, можно предположить, что программа работает правильно.

Руководство пользователя.

Для правильной работы программы необходимо наличие следующих файлов:

F1.TXT, F2. TXT, F3. TXTдля первого задания, P1. TXTдля второго задания,.

D.TXTдля третьего задания. В файлах первого задания должны хранится матрицы: А (5,3), В (3,3), R (3,2).

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

Сама программа KURSOV. PAS должна хранится в текущей директории вместе с файлами данных. После запуска программы из IDE TURBO Pascal, необходимо ввести для второго задания:

фамилию студента..

Для третьего задания необходимо ввести с клавиатуры:

название цеха.

В результате реализации, программа создает новые файлы в той же директории:.

F4.TXT, FC. TXT, FD. TXT — для первого задания;

P2.TXT — для второго задания;

Y.TXT — для третьего задания, в которых будут храниться результаты работы программы.

Заключение.

В данной курсовой работе были рассмотрены различные способы обработки информации и программирования на языке Turbo Pascal. В программе были использованы различные типы данных (целый, вещественный, строковый, регулярный, файловый, комбинированный, множественный, символьный), были рассмотрены методы современной технологии программирования (метод пошаговой детализации, структурный метод, модульный принцип, метод иерархической декомпозиции).

В ходе выполнения курсовой работы были приобретены навыки создания программ на языке программирования Turbo Pascal. При разработке программы были использованы различные типы алгоритмов: линейные, разветвляющиеся, циклические.

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

функциональная полнота программы;

комфорт в эксплуатации (удобство и простота работы с программой);

простота в обучении программе;

надежность программы.

Для простоты написания программ в курсовой работе использовался модульный принцип программирования. Модуль в отличии от программы не может быть запущен на выполнение самостоятельно: он может только использоваться в программах или других модулях. Модули предварительно компилируются независимо от использующей их программы. Наличие модулей в TURBO Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных, воспользоваться возможностями стандартных модулей практически неограниченно, увеличивать кодовую часть программы.

1. Б. И. Чернов «Программирование на языке Паскаль» Москва 1994.

2. Фаронов В. В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. М.: «Нолидж», 1999 — 616 с.,.

3.Зуев Е. А. Turbo Pascal. Практическое программирование. — М.: Приор, 1997;336 с.

4.Фаронов В. В. Программирование на персональных ЭВМ в среде Турбо Паскаль. М.: Издательство МГТУ, 1990;580 с.

5.Марченко А. И., Марченко Л. А. Программирование в среде Turbo Pascal 7.0.

6.Горстко А. Б., Кочковая С. В. «Азбука программирования». Москва 1993 г.

Показать весь текст
Заполнить форму текущей работой