close

Вход

Забыли?

вход по аккаунту

?

Kursach(27)

код для вставкиСкачать
 Черкаський художньо-технічний коледж
Циклова комісія "Комп'ютерні науки та ВПС"
КУРСОВА РОБОТА
з дисципліни АЛГОРИТМІЗАЦІЯ ТА ПРОГРАМУВАННЯ
на тему: МОВА ПРОГРАМУВАННЯ TURBO PASCAL
Студента II курсу МС - 22 групи
Спеціальності 5.05010101 Обслуговування
програмних систем та комплексів
Джемелинський М.Т.
Керівник
Викладач Захарчун Д. М.
Національна шкала ___________
Кількість балів: _______
Члени комісії ___________ _____________________
(підпис) (прізвище та ініціали)
___________ _____________________
(підпис) (прізвище та ініціали)
___________ _____________________
(підпис) (прізвище та ініціали)
м. Черкаси - 2013 рік
ЗМІСТ
ВСТУП
ЗАВДАННЯ 1. Розгалуження4
ЗАВДАННЯ 2. Повторення8
ЗАВДАННЯ 3. Одновимірні масиви14
ЗАВДАННЯ 4. Матриці19
ЗАВДАННЯ 5. Підпрограми23
ЗАВДАННЯ 6. Файли29
ЗАВДАННЯ 7. Рядкові величини34
ЗАВДАННЯ 8. Робота з записам38
ЗАВДАННЯ 9. Графічні засоби45
ЗАВДАННЯ 10. Анімація та рухомі зображення49
ЗАВДАННЯ 11. Динамічні масиви54
ВИСНОВКИ
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
ВСТУП Курсова роботи з дисципліни "Алгоритмізація та програмування" на тему: "Мова програмування TURBO PASCAL" являє собою заключний етап вивчення цієї мови.
Курсова робота виконується студентами, які навчаються за спеціальність "Обслуговування програмних систем і комплексів".
Метою курсової роботи є закріплення знань студентів в галузі застосування засобів програмування TURBO PASCAL при розв'язування задач; отримання навичок розв'язування конкретних задач; застосування знань отриманих на лекційних та практичних заняттях.
Студент повинен вміти самостійно проектувати і планувати розв'язок поставленої перед ним задачі, вміти скласти блок-схему, алгоритм та програму, використовуючи засоби програмування TURBO PASCAL, оформити курсову роботу в текстовому редакторі, зберегти на зовнішньому носії.
ЗАВДАННЯ 1. Розгалуження
Постановка задачі: Ввести три числа. Якщо вони можуть бути довжинами сторін рівнобедреного тупокутного трикутника, обчислити його площу. Вивести довжини сторін і площу у порядку збільшення значень.
Блок-схема:
Програма на мові НАМ: Програма Z1_6;
Використовує Crt;
Змінні A, B, C, I, Buf: Дійсні;
S, P, Cos: Цілі; Початок
ClrScr;
Вивести('Vvedit stotony A=');Ввести(a);
Вивести('Vvedit sotorony B=');Ввести(b);
Вивести('Vvedit storony C=');Ввести(c);
Якщо I:=1 або 3 то Початок if a>b then begin Buf:=a; a:=b; b:=Buf кінець;
if b>c then begin Buf:=b; b:=c; b:=Buf кінець;
кінець;
If (a+b<c) or (a+c<b) or (b+c<a) then
Початок
Вивести('Триугольник с сторонами ',a,' ',b,' ',c,' не существует.');
Зчитування клавіш;
Halt;
Кінець;
If (a=b) or (b=c) or (c=a) then
Початок
Вивести ('Триугольник ровнобедреный.');
Вивести ('Для выхода нажмите любую клавишу');
Зчитування клавіш;
Halt;
Кінець;
CosA:=(a*a+b*b-c*c)/(2*a*b);
If CosA>0 then Початок
Вивести ('Треугольник не тупоугольный.');
Вивести ('Для выхода нажмите любую клавишу');
Зчитування клавіш;
Halt;
Кінець
Else Початок
Вивести ('Треугольник тупоугольный.');
Вивести ('Сторона А= ',a);
Вивести ('Сторона В= ',b);
Вивести ('Сторона С= ',c);
P:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
Вивести ('Площа триугольника S= ',S);
Кінець;
Зчитування клавіш;
Кінець.
Програма на мові TURBO PASCAL:
Program Z1_6;
Uses Crt;
Var A,B,C,I,Buf:Integer;
S,P,CosA:Real;
Begin
Clrscr;
Write('Введите сторону А: ');
Readln(A);
Write('Введите сторону В: ');
Readln(B);
Write('Введите сторону С: ');
Readln(C);
For I:=1 to 3 do begin
if a>b then begin Buf:=a; a:=b; b:=Buf end;
if b>c then begin Buf:=b; b:=c; b:=Buf end;
end;
If (a+b<c) or (a+c<b) or (b+c<a) then Begin
Writeln('Триугольник с сторонами ',a,' ',b,' ',c,' не существует.');
Readkey;
Halt;
End;
If (a=b) or (b=c) or (c=a) then Begin
Writeln('Триугольник ровнобедреный.');
Writeln('Для выхода нажмите любую клавишу');
Readkey;
Halt;
end;
CosA:=(a*a+b*b-c*c)/(2*a*b);
If CosA>0 then Begin
Writeln('Треугольник не тупоугольный.');
Writeln('Для выхода нажмите любую клавишу');
Readkey;
Halt;
End
Else Begin
Writeln('Треугольник тупоугольный.');
Writeln('Сторона А= ',a);
Writeln('Сторона В= ',b);
Writeln('Сторона С= ',c);
P:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('Площа триугольника S= ',S);
End;
Readkey;
End.
Результат виконання програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* Clrscr - очищення екрану;
* Write( ) - виведення на екран;
* Readln( ) - введення даних;
* If...then... - коротка форма розгалуження;
ЗАВДАННЯ 2. Повторення
Постановка задачі Обчислити суму безкінечного ряду з заданою точністю ε. Створити два типа програм за допомогою різних операторів циклу. Ε= Х=0.85
Результати представити у вигляді:
Точність =.................................
1 член =................................
2 член =................................
...........................................
Сума ряду =........................
Кількість членів = ................
Блок-схема:
Програма на мові НАМ:
Програма Z2_1_6;
Використовує Crt;
Оголошення констант
Eps=10E-6;
X=0.85;
Функція factorial (x:Цілі) : Цілі;
Змінні
i: цілі;
F: цілі;
Початок
f:=1;
Якщо i:=1 або х то f:=f*i;
factorial:=f
кінець;
Змінні
Sum,B:Дійсні;
I,J:цілі;
Початок
Clrscr;
i:=1;
Sum:=0;
Вивести('Точность Eps= ',Eps:3:6);
Цикл B<Eps do Початок
If (I mod 2) = 0 Then j:=1 Else J:=-1;
B:=J*(sqrt(i+PI*Sin(i*X)))/(Fact(i+1)+Exp((I+X)*Ln(Exp(1))));
Sum:=Sum+B;
Вивести (i ,'член= ',B:3:6);
i:=I+1;
кінець;
Вивести('Сумма ряда= ',Sum:3:6);
Вивести ('Количество членов= ',I);
зчитування клавіш;
Кінець.
Результат виконання програми:
Програма на мові TURBO PASCAL:
Program Z1_6;
Uses Crt;
Const
Eps=10E-6;
X=0.85;
Function Fact(x:Integer) : Integer;
Var
i:Integer;
F:Integer;
Begin
f:=1;
for i:=1 to x do f:=f*i;
Fact:=f
End;
Var
Sum,B:Real;
I,J:Integer;
Begin
Clrscr;
i:=1;
Sum:=0;
Writeln('Точность Eps= ',Eps:3:6);
Repeat
If (I mod 2) = 0 Then j:=1 Else J:=-1;
B:=J*(sqrt(i+PI*Sin(i*X)))/(Fact(i+1)+Exp((I+X)*Ln(Exp(1))));
Sum:=Sum+B;
writeln(i ,'член= ',B:3:6);
i:=I+1;
Until B>Eps;
Writeln('Сумма ряда= ',Sum:3:6);
Writeln('Количество членов= ',I);
ReadKey;end.
Результат виконання програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* Clrscr - очищення екрану;
* Write( ) - виведення на екран;
* Readln( ) - введення даних;
* If...then...else-повна форма розгалуження;
* While...do-повторення з передумовою;
* Sin() - обчислення синуса;
* Cos() - обчислення косинуса;
* Factorial() - обчислення факторіала;
ЗАВДАННЯ 3. Обробка одновимірних масивів. Постановка задачі: Визначити мінімальний і максимальний елемент серед додатних непарних елементів цілочисельного масиву Х=(х1,х2, ... ,хn). Знищити із масиву всі нульові елементи.
Блок-схема:
Програма на мові НАМ:
Програма Z3_6;
Використовує Crt;
Змінні Mas:array[1..20] of Цілі;
I,Max,Min,Buf:Цілі;
Початок
Clrscr;
Генератор випадкових велечин;
Вивести('Начальный масив: ');
Для i:=1 до 20 початок
Mas[I]:=Random(10-1);
Ввести(Mas[I],', ');
кінець;
Max:=1;
Min:=10;
Для i:=1 до 20 виконати
Початок
if (Mas[I] mod 2)<>0 then If Max<Mas[i] then Max:=Mas[i];
if (Mas[I] mod 2)<>0 then If Min>Mas[i] then Min:=Mas[i];
кінець;
Вивести;
Вивести ('Максимальный елемент= ',Max);
Вивести ('Минимальный елемент= ',Min);
Вивести ('Отредактированый масив: ');
Якщо I:=1 to 20 то if Mas[i]>0 then Write(Mas[i],', ');
зчитування клавіш;
Кінець.
Програма на мові TURBO PASCAL:
Program Z3_6;
Uses Crt;
Var
Mas:array[1..20] of Integer;
I,Max,Min,Buf:Integer;
Begin
Clrscr;
Randomize;
Write('Начальный масив: ');
For I:=1 to 20 do Begin
Mas[I]:=Random(10-1);
write(Mas[I],', ');
End;
Max:=1;
Min:=10;
For I:=1 to 20 do Begin
if (Mas[I] mod 2)<>0 then If Max<Mas[i] then Max:=Mas[i];
if (Mas[I] mod 2)<>0 then If Min>Mas[i] then Min:=Mas[i];
End;
writeln;
Writeln('Максимальный елемент= ',Max);
Writeln('Минимальный елемент= ',Min);
Write('Отредактированый масив: ');
For I:=1 to 20 do if Mas[i]>0 then Write(Mas[i],', ');
ReadKey;
End.
Результат виконання програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* Clrscr - очищення екрану;
* Write( )\writeln( ) - виведення на екран;
* Readln( ) - введення даних;
* If...then... - коротка форма розгалуження;
ЗАВДАННЯ 4. Робота з матрицями
Постановка задачі: Замінити рядок матриці P(n,m) з максимальною сумою елементів на j перший рядок поелементно.
Блок-схема:
Програма на мові НАМ:
Програма Z4_6;
Використовує Crt;
Змінні Mas:array[1..6,1..5] of Цілі;
I,J,Sum,Max,BufI,BufJ:Цілі;
Початок
ClrScr;
Randomize;
Вивести('Начальная матраца: ');
Для i:=1 до 6 виконати
Вивести(i,') ');
Для i:=1 до 5 виконати
Mas[i,j]:=Random(10);
Вивести (Mas[i,j],' ');
кінець;
Вивести;
кінець;
Вивести('Отредактирована матрица: ');
Max:=1;
Для I:=1 to 6 do виконати
Sum:=0;
Для j:=1 to 5 do виконати
Sum:=Sum+Mas[i,j];
if Max<Sum then виконати Max:=Sum; BufI:=I; BufJ:=J кінець;
кінець;
кінець;
Для I:=1 to 5 do Mas[BufI,i]:=Mas[BufJ,i];
Для I:=1 to 6 do початок
Вивести(i,') ');
Для J:=1 to 5 do початок
Вивести (Mas[i,j],' ');
кінець;
Вивести;
кінець;
Вивести('Строка N ',BufI,' заменина на строку N ',BufJ);
Зчитування клавіш;
Кінець.
Програма на мові TURBO PASCAL:
Program Z4_6;
Uses Crt;
Var
Mas:array[1..6,1..5] of Integer;
I,J,Sum,Max,BufI,BufJ:Integer;
Begin
ClrScr;
Randomize;
Writeln('Начальная матраца: ');
For I:=1 to 6 do begin
Write(i,') ');
For J:=1 to 5 do begin
Mas[i,j]:=Random(10);
Write(Mas[i,j],' ');
end;
Writeln;
End;
Writeln('Отредактирована матрица: ');
Max:=1;
For I:=1 to 6 do begin
Sum:=0;
For j:=1 to 5 do begin
Sum:=Sum+Mas[i,j];
if Max<Sum then begin Max:=Sum; BufI:=I; BufJ:=J end;
end;
end;
For I:=1 to 5 do Mas[BufI,i]:=Mas[BufJ,i];
For I:=1 to 6 do begin
Write(i,') ');
For J:=1 to 5 do begin
Write(Mas[i,j],' ');
end;
Writeln;
End;
Writeln('Строка N ',BufI,' заменина на строку N ',BufJ);
Readkey;
End.
Результат виконання програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* Clrscr - очищення екрану;
* Write( )\writeln( ) - виведення на екран;
* Readln( ) - введення даних;
* If...then... - коротка форма розгалуження;
ЗАВДАННЯ 5. Підпрограми
Постановка задачі: В масиві обнулити елемент, які знаходяться після попереднього простого числа.
Блок-схема:
Програма на мові НАМ:
Програма Z5_6;
Використовує Crt;
Функція Diysn(a:цілі) : цілі;
Змінні i,s: цілі;
Початок
s:=0;
для I:=1 to a do виконати
якщо (a mod i) = 0 то s:=s+1;
кінець;
якщо s=2 то Diysn:=2 або Diysn:=1;
кінець;
Змінні
Mas:array[1..20] of цілі;
i,x,b,c: цілі;
Початок
clrscr;
Randomize;
Вивести('Начальный масив: ');
для i:=1 to 20 do початок
Mas[i]:=random(99+1);
вивести(mas[i]:3);
кінець;
вивести;
для i:=1 to 20 do початок
x:=diysn(Mas[i]);
if x=2 then c:=i;
кінець;
для i:=20 downto 1 do початок
x:=diysn(Mas[i]);
if x=2 then по b:початок i; break кінець;
кінець;
для i:=b-1 downto 1 do початок
x:=diysn(Mas[i]);
if x=2 then по c:початок =i; break; кінець;
кінець;
Для i:=c+1 to 20 do mas[i]:=0;
Вивести('Отредактированый масив: ');
для I:=1 to 20 do вивести(mas[i]:3);
Readkey;
кінець.
Програма на мові TURBO PASCAL:
Program Z5_6;
Uses Crt;
Function Diysn(a:integer) : Integer;
Var
i,s:Integer;
Begin
s:=0;
for I:=1 to a do begin
if (a mod i) = 0 then s:=s+1;
end;
if s=2 then Diysn:=2 else Diysn:=1;
End;
Var
Mas:array[1..20] of integer;
i,x,b,c:integer;
Begin
clrscr;
Randomize;
Writeln('Начальный масив: ');
For i:=1 to 20 do begin
Mas[i]:=random(99+1);
write(mas[i]:3);
end;
writeln;
For i:=1 to 20 do begin
x:=diysn(Mas[i]);
if x=2 then c:=i;
end;
For i:=20 downto 1 do begin
x:=diysn(Mas[i]);
if x=2 then begin b:=i; break end;
end;
For i:=b-1 downto 1 do begin
x:=diysn(Mas[i]);
if x=2 then begin c:=i; break; end;
end;
For i:=c+1 to 20 do mas[i]:=0;
Writeln('Отредактированый масив: ');
for I:=1 to 20 do Write(mas[i]:3);
Readkey;
End.
Результат виконання програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* Clrscr( ) - очищення екрану;
* Write( )\writeln( ) - виведення на екран;
* Readln( ) - введення даних;
* If...then... - коротка форма розгалуження;
* Prostoe( ) - знаходить прості числа; * Doskonale ( ) - знаходить досконалі числа;
* Mod - бере остачу від ділення;
* Sqrt( ) - корінь квадратний;
ЗАВДАННЯ 6. Робота з файлами
Постановка задачі: У всіх завданнях скласти дві програми. Перша повинна сформувати типізований файл початкових даних. Друга - зчитати дані з цього файлу, виконати відповідні обчислення і записати їх результати у текстовий файл.
З компонентів початкового файлу цілих чисел сформулювати масив, записавши в нього тільки ненульові компоненти, які знаходяться після максимального елемента.
Блок-схема:
Програма на мові НАМ:
Програма Z6_1;
Використовує Crt;
Змінні f:file of цілі;
i: цілі;
c: цілі;
Початок
clrscr;
Вивести ('Производится запись в файл...');
assign(f,'Z6.txt');
rewrite(f);
randomize;
для i:=1 to 20 do початок
c:=random(100);
Вивід(f,c);
кінець;
close(f);
Вивести('Запись закончена.')
кінець.
Результат виконання програми:
Блок-схема другої програми:
Програма на мові TURBO PASCAL:
Program Z6_2;
Uses Crt;
var f:file of integer;
i:integer;
pos:integer;
max:integer;
n:integer;
mas:array[1..20] of integer;
begin
clrscr;
for i:=1 to 20 do mas[i]:=0;
writeln('Считывание элементов файла...');
assign(f,'Z6.txt');
reset(f);
read(f,max);
write(max:5);
n:=1;
while not eof(f) do begin
read(f,i);
write(i:5);
n:=n+1;
if i>max then begin max:=i;pos:=n; end;
end;
writeln;
writeln('Максимальное: ',pos,'-е число ',max);
seek(f,pos);
n:=1;
writeln('Элементы масива:');
writeln;
while not eof(f) do begin
read(f,i);
if i<>0 then begin
mas[n]:=i;
inc(n);
write(i:5);
end;
end;
close(f);
end.
Результат роботи програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* Clrscr( ) - очищення екрану;
* Write\writeln - виведення на екран;
* Read( ) - введення даних, зчитування даних із файлу;
* If...then... - коротка форма розгалуження;
* Assign( ) - зв'язує логічний файл з фізичним;
* Rewrite( ) - перезаписує файл (попередні дані видаляються);
* Reset( ) - відкриває файл для читання; * Close( ) - закриває файл (збереження даних);
* Seek( ) - встановлює покажчик на задану позицію;
* Eof( ) - визначає чи досягнуто кінця файлу;
* While do - цикл з передумовою.
ЗАВДАННЯ 7. Обробка рядків
Постановка задачі: Дано рядок до крапки, група символів в я кому між проміжками вважається словом:
Знищити, з рядка слово, яке має найбільшу довжину.
Блок-схема:
Програма на мові НАМ:
Програма Z7;
Використовує Crt;
Змінні s: логічні;
i: цілі;
max: цілі;
pos: цілі;
n: цілі;
Початок
clrscr;
Вивести ('Введите строку слов, разделяя их "пробелами"');
Ввести ('(пример: Мама мыла Раму):'); зчитування (s);
max:=0;
для i:=1 to length(s) do Початок
n:=0;
цикл (s[i+n]<>' ') і (i+n<>length(s)) то початок
n:=n+1;
кінець;
якщо n>max then початок
max:=n;
pos:=i;
кінець;
i:=i+n;
кінець;
Вивести ('Максимальная длина слова:',max);
Вивести ('Позиция:',pos);
Вивести ('Удаление слова...');
Вивести ('Строка-результат:');
видалити(s,pos,max);
Ввести (s);
Зчитування ключа;
Кінець.
Програма на мові TURBO PASCAL:
Program Z7;
uses crt;
var s:string;
i:integer;
max:integer;
pos:integer;
n:integer;
begin
clrscr;
writeln('Введите строку слов, разделяя их "пробелами"');
write('(пример: Мама мыла Раму):');readln(s);
max:=0;
for i:=1 to length(s) do begin
n:=0;
while (s[i+n]<>' ') and (i+n<>length(s)) do begin
n:=n+1;
end;
if n>max then begin
max:=n;
pos:=i;
end;
i:=i+n;
end;
writeln('Максимальная длина слова:',max);
writeln('Позиция:',pos);
writeln('Удаление слова...');
writeln('Строка-результат:');
delete(s,pos,max);
writeln(s);
readkey;
end.
Результат виконання програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* Clrscr - очищення екрану;
* Write( ) - виведення на екран;
* Readln( ) - введення даних;
* If...then... - коротка форма розгалуження;
* Proste( ) - визначає прості числа;
* Val( ) - перетворює символьне в числове;
* Break - переривання;
* Mod - бере залишок від ділення;
* Length( ) - визначає довжину рядка.
ЗАВДАННЯ 8. Робота з записами
Постановка задачі: Відома інформація про кожного клієнта ощадкаси:
- номер ощадкнижки;
- прізвище, ініціали;
- рік народження;
- сума вкладу;
- прихід;
- витрати.
Сформулювати таблицю, записавши до неї всю відому інформацію про кожного клієнта. Якщо клієнт брав гроші з рахунку, то прихід дорівнює нулю і навпаки. Сформулювати поле "Підсумок". Відсортувати таблицю в алфавітному порядку. Визначити кількість клієнтів, які внесли гроші на рахунок, і кількість клієнтів, які зняли гроші.
Номер бригадиЦіна за тонуДобуток вугілля за зміну, т. ПонеділокВівторокСередаЧетверПятниця 1985040,536,24833,5 Блок - схема:
Програма на мові НАМ:
Програма z8;
Використовує Crt;
типи користувача Tklient= запис
num:string;
name:string;
year:цілі;
Sum:дійсні;
Inp:дійсні;
outp:дійсні;
All:дійсні;
кінець;
Змінні mas:array[1..20] of tklient;
n,i,j:integer;
ch:char;
kolin,kolout:integer;
процедура swapel(var el1,el2:tklient);
Змінні el:tklient;
початок
el:=el1;
el1:=el2;
el2:=el;
кінець;
початок
clrscr;
Вивести ('Введите начальную информацию о клиентах зберкассы.');
i:=0;
цикл
inc(i);
textcolor(7);
Вивести ('Введите информацию ',i,'-го клиента:');
Вивести ('Номер сберкнижки:'); зчитування (mas[i].num);
Вивести('Фамилия, инициалы:'); зчитування (mas[i].name);
Вивести ('Год рождения:'); зчитування (mas[i].year);
Вивести ('Сумма вклада:'); зчитування (mas[i].Sum);
Вивести ('Приход:'); зчитування (mas[i].Inp);
Вивести ('Затраты:'); зчитування (mas[i].outp);
mas[i].all:=mas[i].sum+mas[i].inp-mas[i].outp;
textcolor(2);
Вивести ('Для создания еще одной записи нажмите любую клавишу.');
textcolor(4);
Вивести ('Для завершения нажмите ESC...');
textcolor(7);
ch:=readkey;
until ch=#27;
n:=i;
для j:=1 to n do початок
для i:=1 to n-j do початок
якщо mas[i].name[1]>mas[i+1].name[1] then swapel(mas[i],mas[i+1]);
кінець;
кінець;
kolin:=0;
kolout:=0;
для i:=1 to n do початок
вивести(mas[i].name,' ',mas[i].year:5,'г.р. N сберкн. ',mas[i].num:10,' Итог: ',mas[i].all:6:2);
якщо mas[i].inp=0 then inc(kolout) else inc(kolin);
кінець;
вивести ('Количество клиентов, что внесли деньги на счет: ',kolin);
вивести ('Количество клиентов, что сняли деньги со счета: ',kolin);
readkey;
кінець.
Програма на мові TURBO PASCAL:
program z8;
uses crt;
type Tklient=record
num:string;
name:string;
year:integer;
Sum:real;
Inp:real;
outp:real;
All:real;
end;
var mas:array[1..20] of tklient;
n,i,j:integer;
ch:char;
kolin,kolout:integer;
procedure swapel(var el1,el2:tklient);
var el:tklient;
begin
el:=el1;
el1:=el2;
el2:=el;
end;
begin
clrscr;
writeln('Введите начальную информацию о клиентах зберкассы.');
i:=0;
repeat
inc(i);
textcolor(7);
writeln('Введите информацию ',i,'-го клиента:');
write('Номер сберкнижки:');readln(mas[i].num);
write('Фамилия, инициалы:');readln(mas[i].name);
write('Год рождения:');readln(mas[i].year);
write('Сумма вклада:');readln(mas[i].Sum);
write('Приход:');readln(mas[i].Inp);
write('Затраты:');readln(mas[i].outp);
mas[i].all:=mas[i].sum+mas[i].inp-mas[i].outp;
textcolor(2);
writeln('Для создания еще одной записи нажмите любую клавишу.');
textcolor(4);
writeln('Для завершения нажмите ESC...');
textcolor(7);
ch:=readkey;
until ch=#27;
n:=i;
for j:=1 to n do begin
for i:=1 to n-j do begin
if mas[i].name[1]>mas[i+1].name[1] then swapel(mas[i],mas[i+1]);
end;
end;
kolin:=0;
kolout:=0;
for i:=1 to n do begin
writeln(mas[i].name,' ',mas[i].year:5,'г.р. N сберкн. ',mas[i].num:10,' Итог: ',mas[i].all:6:2);
if mas[i].inp=0 then inc(kolout) else inc(kolin);
end;
writeln('Количество клиентов, что внесли деньги на счет: ',kolin);
writeln('Количество клиентов, что сняли деньги со счета: ',kolin);
readkey;
end.
Результат виконання програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* Clrscr - очищення екрану;
* Write\writeln( ) - виведення на екран;
* Write( ) - запис до типізованого файлу;
* Read( ) - введення даних;
* Read( ) - зчитування даних з типізованого файлу;
* If...then... - коротка форма розгалуження;
* Assign( ) - зв'язує логічний файл з фізичним;
* Rewrite( ) - перезаписує файл (попередні дані видаляються);
* Reset( ) - відкриває файл для читання; * Close( ) - закриває файл (збереження даних);
* Eof( ) - визначає чи досягнуто кінця файлу;
* While do - цикл з передумовою.
ЗАВДАННЯ 9. Графічні засоби Турбо Паскаля
Постановка задачі: Відобразити на екрані дисплея графіки вказаних нижче функцій (А приймає наступні значення: -1; 0,5; 1; 1,5). Побудувати координатні осі та виконати відповідні написи на них:
Y=A(2x4-7x3+13x2-8x)*cos(x), x є [-2;5];
Блок-схема:
Програма на мові НАМ:
Програма z9;
Використовує graph,Crt;
Змінні gd, gm,: цілі;
y,x,a: дійсні;
i: цілі;
Початок
gd:=vga;
gm:=vgahi;
initgraph(gd,gm,'');
якщо graphresult<>grok then початок
вивести('Graph error in file EgaVga.BGI...');
readkey;
halt;
кінець;
для i:=1 to 4 то початок
clearviewport;
case i of
1: початок outtextxy(10,10,'A=-1');a:=-1;кінець;
2: початок outtextxy(10,10,'A=-0.5');a:=-0.5; кінець;
3: початок outtextxy(10,10,'A=1');a:=1; кінець;
4: початок outtextxy(10,10,'A=1.5');a:=1.5; кінець;
кінець; setcolor(red);
ліня(getmaxx div 2,0,getmaxx div 2,getmaxy);
ліня(0,getmaxy div 2,getmaxx,getmaxy div 2);
x:=-2;
y:=a*(2*x*x*x*x-7*x*x*x+13*x*x-8*x)*cos(x);
moveto((getmaxx div 2)+trunc(x),(getmaxy div 2)+trunc(y));
setcolor(3);
repeat
y:=a*(2*x*x*x*x-7*x*x*x+13*x*x-8*x)*cos(x);
lineto((getmaxx div 2)+trunc(x),(getmaxy div 2)+trunc(y));
x:=x+0.01;
until x>=5;
setcolor(15);
readkey;
кінець;
closegraph;
кінець.
Програма на мові TURBO PASCAL:
program z9;
uses crt,graph;
var gd,gm:integer;
y,x,a:real;
i:integer;
begin
gd:=vga;
gm:=vgahi;
initgraph(gd,gm,'');
if graphresult<>grok then begin
writeln('Graph error in file EgaVga.BGI...');
readkey;
halt;
end;
for i:=1 to 4 do begin
clearviewport;
case i of
1:begin outtextxy(10,10,'A=-1');a:=-1;end;
2:begin outtextxy(10,10,'A=-0.5');a:=-0.5;end;
3:begin outtextxy(10,10,'A=1');a:=1;end;
4:begin outtextxy(10,10,'A=1.5');a:=1.5;end;
end;
setcolor(red);
line(getmaxx div 2,0,getmaxx div 2,getmaxy);
line(0,getmaxy div 2,getmaxx,getmaxy div 2);
x:=-2;
y:=a*(2*x*x*x*x-7*x*x*x+13*x*x-8*x)*cos(x);
moveto((getmaxx div 2)+trunc(x),(getmaxy div 2)+trunc(y));
setcolor(3);
repeat
y:=a*(2*x*x*x*x-7*x*x*x+13*x*x-8*x)*cos(x);
lineto((getmaxx div 2)+trunc(x),(getmaxy div 2)+trunc(y));
x:=x+0.01;
until x>=5;
setcolor(15);
readkey;
end;
closegraph;
end.
Результат виконання програми:
Короткі відомості про процедури та функції, які використовуються в програмі:
* іnitgraph(gd, gm,'') - ініціює графічний режим;
* SetColor() - встановлення кольору ліній;
* Line() - відрізок;
* outtextXY() - виведення тексту на екран;
* While...do - цикл з передумовою;
* PutPixel() - точка;
* Readkey - зчитує символ з буфера клавіатури;
ЗАВДАННЯ 10. Анімація та рухомі зображення
Постановка задачі: Намалювати автомобіль, що рухається по екрану. Колеса автомобіля крутяться.
Блок-схема:
Програма на мові НАМ:
Програма z10;
Використовує graph,Crt;
Змінні gd,gm:цілі;
y,x,a:дійсні;
i:цілі;
Початок
gd:=vga;
gm:=vgahi;
initgraph(gd,gm,'');
якщо graphresult<>grok then початок
вивести('Graph error in file EgaVga.BGI...');
readkey;
halt;
кінець;
для i:=1 to 4 do Початок
clearviewport; case i of
1: Початок outtextxy(10,10,'A=-1');a:=-1; кінець;
2: Початок outtextxy(10,10,'A=-0.5');a:=-0.5; кінець;
3: Початок outtextxy(10,10,'A=1');a:=1; кінець;
4: Початок outtextxy(10,10,'A=1.5');a:=1.5; кінець;
кінець;
setcolor(red);
ліня(getmaxx div 2,0,getmaxx div 2,getmaxy);
ліня(0,getmaxy div 2,getmaxx,getmaxy div 2);
x:=-2;
y:=a*(2*x*x*x*x-7*x*x*x+13*x*x-8*x)*cos(x);
moveto((getmaxx div 2)+trunc(x),(getmaxy div 2)+trunc(y));
setcolor(3);
repeat
y:=a*(2*x*x*x*x-7*x*x*x+13*x*x-8*x)*cos(x);
lineto((getmaxx div 2)+trunc(x),(getmaxy div 2)+trunc(y));
x:=x+0.01;
until x>=5;
setcolor(15);
readkey;
кінець;
closegraph;
end.
Результати роботи програми:
На екрані з'являється автомобіль, який рухається по екрану і в якого крутяться колеса. Програма на мові TURBO PASCAL:
program z9;
uses crt,graph;
var gd,gm:integer;
y,x,a:real;
i:integer;
begin
gd:=vga;
gm:=vgahi;
initgraph(gd,gm,'');
if graphresult<>grok then begin
writeln('Graph error in file EgaVga.BGI...');
readkey;
halt;
end;
for i:=1 to 4 do begin
clearviewport;
case i of
1:begin outtextxy(10,10,'A=-1');a:=-1;end;
2:begin outtextxy(10,10,'A=-0.5');a:=-0.5;end;
3:begin outtextxy(10,10,'A=1');a:=1;end;
4:begin outtextxy(10,10,'A=1.5');a:=1.5;end;
end;
setcolor(red);
line(getmaxx div 2,0,getmaxx div 2,getmaxy);
line(0,getmaxy div 2,getmaxx,getmaxy div 2);
x:=-2;
y:=a*(2*x*x*x*x-7*x*x*x+13*x*x-8*x)*cos(x);
moveto((getmaxx div 2)+trunc(x),(getmaxy div 2)+trunc(y));
setcolor(3);
repeat
y:=a*(2*x*x*x*x-7*x*x*x+13*x*x-8*x)*cos(x);
lineto((getmaxx div 2)+trunc(x),(getmaxy div 2)+trunc(y));
x:=x+0.01;
until x>=5;
setcolor(15);
readkey;
end;
closegraph;
end.
Результат виконання програми:
На екрані з'являється автомобіль, який рухається по екрану і в якого крутяться колеса. Короткі відомості про процедури та функції, які використовуються в програмі:
* initgraph(gd, gm,'') - ініціює графічний режим;
* SetColor() - встановлення кольору ліній;
* Repeat...until - цикл з післяумовою;
* PutPixel()- точка;
* Readkey - зчитує символ з буфера клавіатури;
* Delay( ) - встановлює затримку в мілісекундах;
* Keypressed - повертає значення true якщо буде натиснута будь-яка клавіша;
* Round - округлює значення;
* GetmaxX - повертає саме більше значення координати Х для точки на екрані; * GetmaxY - повертає саме більше значення координати Y для точки на екрані.
ВИСНОВКИ
При виконанні цих робіт, я засвоїв навички програмування на мові Паскаль, а саме:
- рахування математичних формул;
- знаходження суми ряду;
- роботу з файлами;
- роботу з графікою та ін.
І на мою думку мова програмування Паскаль - є чи не найкращим початком у світі професійного програмування.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1. Меженный О.А. "Turbo Pascal-учитесь программировать"; Москва-С.Петербург-Киев; "Диалектика"; 2001; 448с.
2. Бабушкин И.А.; "Практикум по ТР"-учебное пособие по курсам ИВТ; Москва, 1998.
3. "Turbo Pascal" Практикум С. А. Немнюгин. - Питер 2002
4. http://www.freepascal.org.
Документ
Категория
Рефераты
Просмотров
64
Размер файла
1 260 Кб
Теги
kursach
1/--страниц
Пожаловаться на содержимое документа