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

Использование возможности 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

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