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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 03.03.2011
Размер файла 57,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство Образования и Науки Российской Федерации

Дагестанский Государственный Технический Университет

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

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

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

Выполнил: Ст-т: 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

-

2

7

6

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

Клавиатура

гитинов

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

10

87

1000

магомедов

сборочный цех

5

56

1100

Ризаханов

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

43

9

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

гитинов

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

10

87

1000

магомедов

жестяной цех

5

56

1100

Ризаханов

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

43

9

1200

--

Y.TXT

-

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

287

Таблица

Буре-1200

Иванов-1400

Фетисов-1000

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

1200

Размещено на http://www.allbest.ru/

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

Размещено на http://www.allbest.ru/

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

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

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

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 z2_1(b:byte);

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

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

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

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

Procedure z2_2(b:byte);

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

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

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

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

Procedure z2_3(b:byte);

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

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

Постановка задачи: ассигнуем файловые переменные f и fn с физическими файлами p1.txt и p2.txt. Файл p1.txt открываем для чтения. Файл p2.txt открываем для записи. Считаем количество символов в тексте кроме букв. Закрываем физические файлы f и fn.
Исходные данные: B.
Результат: нет.
Заголовок функции:
Procedure z2_1(b:string);
П/П читает символы в тексте из файла p1.txt, считает их количество кроме букв и выводит полученные результаты в файл p2.txt.
Программа для отладки.

Program otl1;

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;

begin

z2_1(`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 z2_2(b:byte);

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

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

Program Str;

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');

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

z2_2(`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 z2_3(b:byte);

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

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

Program Pr;

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;

begin

z2_3(`p2.txt');

end.

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

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

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

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

Вывод:

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

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

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

Исходные данные: нет

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

procedure z_3;

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

program test_z_3;

procedure z_3;

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 и записываем в него следующие записи:

Фетисов

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

12

10

87

1000

Иванов

жестяной цех

41

5

56

1100

Буре

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

68

43

9

1200

Клавиатура - столярный цех

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

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

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

Фетисов 1000

Буре 1200

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

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

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

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

Фетисов 1000

Буре 1200

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

Вывод:

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

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 Z_1;

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 z_2_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 z_2_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 z_2_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 Z_3;

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

Z_1;

Z_2_1(`p2.txt');

Z_2_2(`p2.txt');

Z_2_3(`p2.txt');

Z_3;

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

2

F4.TXT -------7

6

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 ----------------- Общее количество изделий

210

Гитинов 1000

Ризаханов 1200

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

1100

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

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

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

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

2

F4.TXT -------7

6

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 ----------------- Общее количество изделий

210

Гитинов 1000

Ризаханов 1200

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

1100

Вывод:

Поскольку результаты, полученные ПК в файлах 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 г.

Размещено на Allbest.ru


Подобные документы

  • Разработка алгоритмов методом пошаговой детализации. Типы данных и операции в Turbo-Pascal. Организация работы с подпрограммами. Составление алгоритмов и программ задач с использованием конечных сумм. Организация работы с динамическими переменными.

    учебное пособие [1,4 M], добавлен 26.03.2014

  • Цель, этапы, основные проблемы структурного программирования. Принцип нисходящего проектирования алгоритмов и программ (метод проектирования сверху вниз). Достоинства метода пошаговой детализации. Основные плюсы и минусы методик программирования.

    реферат [40,0 K], добавлен 01.04.2010

  • Освоение технологии структурного программирования и применения стандартных методов работы с одномерными массивами при разработке и создании программы на языке Турбо Паскаль. Разработка программы методом пошаговой детализации с помощью псевдокода.

    реферат [276,9 K], добавлен 27.02.2008

  • История создания и развитие Pascal. Особенности пакета программирования Turbo. его возможности редактора текстов, компилятора и отладчика. Построения программы на языке Turbo Pascal, ее структура, типы алгоритмов, одномерные и многомерные массивы.

    курсовая работа [519,3 K], добавлен 25.06.2011

  • Основные этапы разработки программного обеспечения (пакета программ), анализ требований к системе. Метод пошаговой детализации. Языки программирования низкого уровня и высокого уровня (императивные, объектно-ориентированные, функциональные, логические).

    презентация [41,4 K], добавлен 13.10.2013

  • Появление первых вычислительных машин и возникновение "стихийного" программирования. Структурный подход к декомпозиции сложных систем. Развитие модульного и объектно-ориентированного программирования. Особенности компонентного подхода и CASE-технологий.

    презентация [1,5 M], добавлен 14.10.2013

  • Информационные технологии и защиты данных. Методы защиты информации. Виды информационной безопасности и умышленные угрозы. Программирование на языке Turbo Pascal. Типы числовых данных. Функции ввода и вывода. Логические операторы, символьные переменные.

    курсовая работа [1,7 M], добавлен 16.05.2016

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

    презентация [1,8 M], добавлен 05.11.2016

  • Характеристика используемой операционной системы, языка программирования. Структура программы на языке Turbo Pascal 7.1. Операторы языка Turbo Pascal. Проведение сортировки записей. Алгоритмы программы и подпрограмм. Причины возникновения ошибок.

    курсовая работа [454,1 K], добавлен 13.06.2014

  • История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.

    курсовая работа [359,4 K], добавлен 05.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.