Вопросы программирования
Использование возможности Turbo Pascal 7.0 при запрограммировании модуля, содержащего описание работы двух подпрограмм. Демонстрация работы модуля на примере. Использование возможности Turbo Pascal 7.0 при описании объекта согласно выбранному варианту.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 08.05.2012 |
Размер файла | 422,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
3
Размещено на http://www.allbest.ru/
Контрольная работа
По дисциплине: «Технология программирования»
Рудный 2009
Содержание
1. Задача 1. Структурное программирование
1.1 Условие задачи
1.2 Программный код
1.3 Пример
2. Задача 2. Объектно-ориентированное программирование
2.1 Условие задачи
2.2 Программный код
3. Задача 3. Динамические структуры данных
3.1 Условие задачи
3.2 Программный код
3.3 Пример
Список используемой литературы
1. Задача 1. Структурное программирование
1.1 Условие задачи
Используя возможности Turbo Pascal 7.0, запрограммировать модуль, содержащий описание работы двух подпрограмм. Продемонстрировать работу модуля на примере.
turbo pascal запрограммирование модуль
Номер варианта |
Подпрограмма №1 |
Подпрограмма №2 |
|
3 |
Функция, возвращающая значение среднего арифметического элементов целочисленного массива. |
Процедура перестановки элементов целочисленного массива в следующем порядке: 1-ый элемент меняется местами с последним, 2-ой - с предпоследним и т.д. |
1.2 Программный код
program Zad_1; {заголовок программы}
uses {подключение дополнительных модулей}
crt;
type {описание типов}
massiv = array [1..50] of integer; {тип - целочисленный массив с максимальным числом элементов 50}
{функция расчета среднего арифметического элементов массива
Параметры:
mas - массив
n - количество элементов в массиве
Возвращаемое значение:
среднее арифметическое элементов массива, тип - real}
function SredArif(mas:massiv; n:byte) : real;
var
i : byte;
sum : integer;
begin
sum := 0;
for i:=1 to n do
sum := sum + mas[i];
SredArif := sum /n;
end;
{процедура перестановки элементов массива местами,
Параметры:
mas - массив
n - количество элементов в массиве
Результат:
выводит на экран элементы матрицы, которые были поменяны местами,
т.е. 1-ый элемент становиться последним, 2-ой предпоследним и т.д.}
procedure Perestanovka(a:massiv; n:byte);
var
i : byte;
tmp: integer;
begin
for i:=1 to (n div 2) do
begin
tmp := a[i];
a[i]:=a[n-i+1];
a[n-i+1]:= tmp;
end;
for i:=1 to n do
Write(a[i],' ');
end;
var
mas : massiv;
i, n : byte;
Begin
clrscr;
Write('Введите количество элементов в массиве:');
ReadLn(n);
for i:=1 to n do
begin
Write('Введите ', i ,'-ый элемент массива:');
ReadLn(mas[i]);
end;
WriteLn('1.Среднее арифметическое =', sredArif(mas,n):0:2);
ReadLn;
WriteLn('2. Перестановка элементов массива местами: ');
Perestanovka(mas,n);
ReadLn;
End.
1.3 Пример
2. Задача 2. Объектно-ориентированное программирование
2.1 Условие задачи
Используя возможности Turbo Pascal 7.0, описать объект согласно выбранному варианту и использовать его в программе. Требования к объекту: не менее 3-х полей, не менее 3-х методов.
№ варианта |
Объект |
Пример поля |
Пример метода |
|
9 |
Строка |
Длина строки |
Вывод строки в определенном месте экрана |
2.2 Программный код
Program Zad_2;
Uses
crt;
type TWindowText = object {строка}
x, y : integer; {координаты строки}
dlina : byte; {длина}
str : string; {текст строки}
colorBg : byte; {цвет фона}
colorText : byte; {цвет текста}
visible : boolean; {флаг видимости}
procedure Init (xStr, yStr : byte; DinaStr : byte; Text : string; ColorTextBg, colorTxt : byte );
procedure Show;
procedure Hide;
function isVisible: boolean;
end;
procedure TWindowText.Init(xStr, yStr : byte;DinaStr : byte; Text : string; ColorTextBg, colorTxt : byte );
{Задаёт начальные параметры }
begin
Self.X := xStr;
Self.Y := yStr;
Self.dlina := DinaStr; {длина}
Self.str := Text; {текст строки}
Self.colorBg := ColorTextBg; {цвет фона}
Self.colorText := colorTxt; {цвет текста}
Self.visible := true; {флаг видимости}
end;
procedure TWindowText.Show;
{Выводит строку}
var
kol, i : integer;
s: string;
begin
textBackGround(colorBg );
if isVisible = true then
textColor(colorText)
else
textColor(colorBg);
gotoxy (x , y );
kol:= (dlina div length(str)) +1 ;
s:='';
for i:=1 to kol do
s:=s+str;
s:=copy(s,1,dlina);
Write(s);
end;
procedure TWindowText.Hide;
{удаляет строку}
begin
Self.Visible:=false;
Show;
end;
function TWindowText.isVisible: boolean;
begin
isVisible:=visible;
end;
Var
Str : TWindowText;
txt : string;
n, i, j : byte;
Begin
ClrScr;
Write('Введите символ: ');
ReadLn(txt);
Write('Введите количество символов (максимально - 255): ');
ReadLn(n);
{бегущая строка }
for i:= 1 to 10 do
for j:=1 to 80 do
begin
Str.Init(j, i+2, n, txt , Black, j);
Str.Show;
delay(9000);
Str.Hide;
end;
3. Задача 3. Динамические структуры данных
3.1 Условие задачи
Используя возможности Turbo Pascal 7.0, описать динамическую структуру согласно выбранному варианту и использовать ее в программе.
Номер варианта |
Динамическая структура |
|
3 |
Очередь, элементы которой - покупатели магазина (ФИО, сумма денег кошельке). Отпустить товар двум покупателям. Поставить в очередь нового покупателя. Определить сумму денег, потраченную двумя покупателями. |
3.2 Программный код
Очередью называется динамическая структура данных, добавление компоненты в которую производится в один конец, а выборка осуществляется с другого конца. Очередь работает по принципу:
FIFO (First-In, First-Out) - поступивший первым, обслуживается первым.
Для формирования очереди и работы с ней необходимо иметь три переменные типа указатель, первая из которых определяет начало очереди, вторая - конец очереди, третья - вспомогательная.
Program Zad_3;
uses Crt;
type
Alfa= String[30];
PComp= ^Comp;
Comp= record
Name:Alfa;
Money: real;
pNext:PComp
end;
var
pBegin, pEnd, pAux: PComp;
{pBegin - указатель начала очереди, pEnd - указатель конца очереди}
Name: Alfa;
Money : real;
tmp, i : byte;
rasxod : array [1..2] of real;
Procedure CreateQueue(var pBegin, pEnd: PComp; var name: Alfa; var Money: real); {Начальное формирование очереди}
begin
New(pBegin);
pBegin^.pNext:=NIL;
pBegin^.name:=name;
pBegin^.Money:=Money;
pEnd:=pBegin
end;
Procedure AddQueue(var pEnd:PComp; var name: Alfa; var Money: real); {Добавление компоненты в очередь}
var pAux: PComp;
begin
New(pAux);
pAux^.pNext:=NIL;
pEnd^.pNext:=pAux;
pEnd:=pAux;
pEnd^.name:=name;
pEnd^.Money:=Money;
end;
Procedure DelQueue(var pBegin: PComp; var name: Alfa; var Money: real); {Чтение компонентов в очереди}
begin
name:=pBegin^.name;
Money:=pBegin^.Money;
pBegin:=pBegin^.pNext;
end;
procedure SelectFromQueue( var pBegin, pEnd: PComp); {Выбор первого компонента в очереди и удаление его }
var
pAux: PComp;
begin
if not ( ( pBegin = nil ) and ( pEnd = nil ) ) then
begin
name:= pBegin^.name;
money:=pBegin^.money;
pAux:= pBegin;
pBegin:= pBegin^.pNext; {убираем 1-ый элемент из очереди}
if pBegin= nil then {был ли это последний элемент}
pEnd:= nil;
end;
end;
begin
Clrscr;
i:= 0;
rasxod[1] := 0;
rasxod[2] := 0;
writeln(' 1 - Сформировать первоначальную очередь.');
writeln(' 2 - Поставить в очередь нового покупателя.');
writeln(' 3 - Вывести очередь.');
writeln(' 4 - Отпустить товар покупателю.');
writeln(' 5 - Отпустить товар двум покупателям.');
writeln(' 6 - Определить сумму денег, потраченную двумя покупателями.');
writeln(' 7 - Выход.');
repeat
write(' Веберите действие: ');
readLn(tmp);
case tmp of
1 :
begin
writeln(' Введите ФИО: ');
readln(Name);
writeln(' Введите Сумму денег в кошельке: ');
wreadLn(Money);
CreateQueue(pBegin,pEnd,Name, money);
repeat
writeln(' Введите ФИО: ');
readln(Name);
if name<>'END' then
begin
writeln(' Введите Сумму денег в кошельке: ');
readLn(Money);
AddQueue(pEnd,Name, Money) ;
end;
until name='END' ;
end;
2 :
begin
writeln(' Введите ФИО: ');
readln(Name);
writeln(' Введите Сумму денег в кошельке: ');
readLn(Money);
if pEnd= NIL then
CreateQueue(pBegin,pEnd,Name, money)
else
AddQueue(pEnd,Name, Money);
end;
3 :
begin
writeln(' ***** ВЫВОД РЕЗУЛЬТАТОВ *****');
pAux := pBegin;
while pAux <> NIL do
begin
DelQueue(pAux, Name, Money);
writeln(Name,', в кошельке - ', Money:0:2);
end;
end;
4 :
begin
SelectFromQueue(pBegin, pEnd);
writeln(Name,', в кошельке - ', Money:0:2);
Write('Введите потраченную сумму: ');
i:= i+1;
if i>2 then
i:=1;
ReadLn(rasxod[i]);
end;
5 :
begin
for i:= 1 to 2 do
begin
SelectFromQueue(pBegin, pEnd);
writeln(Name,', в кошельке - ', Money:0:2);
Write('Введите потраченную сумму: ');
ReadLn(rasxod[i]);
end;
end;
6 : WriteLn('Потрачено 1-ый = ', rasxod[1]:0:2,', потрачено 2-ый = ', rasxod[2]:0:2);
7 : WriteLn('Выход!')
else
Write('=хяЁртшы№эр ъюьрэфр!');
end;
ReadLN;
until tmp = 7;
end.
3.3 Пример
Список используемой литературы
1. Е.А. Зуев. Программирование на языке Turbo Pascal 6.0, 7.0, М.:Веста,Радио и связь, 1993.
2. Моргун Александр Николаевич. Справочник по Turbo Pascal для студентов. -- М.: Диалектика, 2006.
3. Эллиот Б. Коффман. Turbo Pascal = Turbo Pascal Web Update. -- М.: Вильямс, 2005.
4. Нэйл Рубенкинг. Turbo Pascal для Windows = Turbo Pascal for Windows. Techniques and Utilites. -- М.: Мир, 1993.
5. Кассера В.и Ф. Turbo Pascal 7.0, Диасофт, 2003.
6. Фаронов В.В. Turbo Pascal. Наиболее полное руководство, BHV-Санкт-Петербург,2007.
Размещено на Allbest.ru
Подобные документы
История создания и развитие Pascal. Особенности пакета программирования Turbo. его возможности редактора текстов, компилятора и отладчика. Построения программы на языке Turbo Pascal, ее структура, типы алгоритмов, одномерные и многомерные массивы.
курсовая работа [519,3 K], добавлен 25.06.2011Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.
реферат [64,0 K], добавлен 20.03.2016Основы работы на языке высокого уровня Turbo Pascal. Основное оборудование и программное обеспечение. Операторы, необходимы для работы в графической среде Turbo Pascal. Запуск графического режима. Текст программы в графической среде Turbo Pascal.
лабораторная работа [12,7 K], добавлен 14.05.2011Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.
контрольная работа [286,3 K], добавлен 10.04.2011Язык программирования Pascal и его турбооболочка. Аналитический обзор игрового программного обеспечения. Функции модуля Crt. Постановка задачи создания несложной игровой программы "Турбозмей", алгоритм реализации и описание пользовательского интерфейса.
курсовая работа [100,4 K], добавлен 15.05.2014Разработка эскизного и технического проектов программы "Helpopr" (ввод, хранение и вывод данных на дисплей по запросу пользователя). Язык программирования Turbo Pascal. Описание алгоритма программы. Требования к компьютеру и программному обеспечению.
курсовая работа [198,1 K], добавлен 03.02.2010Строгая типизация и наличие средств структурного (процедурного) программирования императивного языка Pascal. Структура программы, выражения, строки. Правила и описание типов, процедур и функций, операторов ввода - вывода, модулей и подпрограмм.
курсовая работа [37,3 K], добавлен 28.06.2008Понятие и история развития языка Turbo Pascal, оценка его графических возможностей и особенностей. Инициализация графического режима. Управление экраном и окнами, цветом и фоном, принципы работы с текстом. Построение графиков функций и изображений.
курсовая работа [159,9 K], добавлен 17.12.2014Программирование и структура программы на языке Turbo Pascal и MS Visual C++6.0. Вычисление площади круга. Реализация программы в системе Turbo Pascal и MS VISUAL C++6.0 для Windows. Структура окна ТРW. Сохранение текста программы в файле на диске.
лабораторная работа [3,7 M], добавлен 22.03.2012История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.
курсовая работа [359,4 K], добавлен 05.01.2010