- •Основы программирования на турбо паскале методические указания
- •Введение
- •Знакомство со средой программирования Turbo Pascal 7.0
- •Лабораторная работа №1 Структура программы на Паскале. Организация ввода-вывода данных. Использование стандартных функций.
- •Основные стандартные функции
- •Выражения
- •Задания для самостоятельной работы
- •Лабораторная работа №2 Программы разветвляющейся структуры
- •Практические задания
- •Var c: char;
- •I: integer;
- •Практические задания
- •Var a,b,c,X: integer;
- •Var X,y,r:real;
- •Задания для самостоятельной работы
- •Лабораторная работа №3 Программы циклической структуры
- •Практические задания
- •Var X,y,a, x1, x2, h, xmin, ymin, sa: real;
- •Задания для самостоятельной работы
- •Лабораторная работа №4 Работа с массивами и строками
- •1) Тип «массив»
- •Var a: Vector;
- •2) Тип «строка»
- •Var s: String[80];
- •Практические задания
- •Var a: array[1..100] of real;
- •I,j,n: integer;
- •Var a: array [1..10,1..10] of real;
- •I,j,n,m,m1,m2: integer;
- •Var s: string;
- •I: integer;
- •Задания для самостоятельной работы
- •Лабораторная работа №5 Процедуры и функции
- •1) Процедуры
- •Var a: mass;
- •Var I: integer;
- •2) Функции
- •Var a: mass;
- •Практические задания
- •Var a,b,c,s: real;
- •Var p: real;
- •If exist(a,b,c) then
- •Var a,b: vect;
- •Задания для самостоятельной работы
- •Лабораторная работа №6 Типизированные и текстовые файлы
- •Var f: File of real;
- •Var t: text80;
- •1) Типизированные файлы
- •2) Текстовые файлы
- •Практические задания
- •Var n,I,X,xmax: integer;
- •Var I,j,n:integer;
- •Задания для самостоятельной работы
- •Лабораторная работа №7 Графика в Турбо Паскале
- •Практические задания
- •Var gd,gm,n,I: integer;
- •Var I,X,y: integer;
- •Initgraph(gd,gm,'');
- •Задания для самостоятельной работы
- •394026 Воронеж, Московский просп., 14
Практические задания
1. Изучить и запустить программу вывода на экран графика функции f(x)=sin(3x)/(x2+5) на отрезке [–10, 10]. Изменить программу, добавив вывод графика еще одной функции (по выбору).
Program function_graph;
uses graph,crt;
Var gd,gm,n,I: integer;
a,b,h,xmas,ymas,max,min,x,y: double;
c: char;
function f(x: double):double;
begin f:=sin(3*x)/(x*x+5) end;
Begin
detectgraph(gd,gm);
initgraph(gd,gm,''); {Вход в графический режим}
a:=-10; b:=10; n:=500; h:=(b-a)/n;
{Вычисление масштабных коэффициентов}
xmas:=500/(b-a);
max:=f(a); min:=f(a);
for i:=1 to n do
begin
x:=a+i*h;
if max<f(x) then max:=f(x);
if min>f(x) then min:=f(x)
end;
ymas:=400/(max-min);
setviewport(70,40,570,440,ClipOn);
setcolor(15);
{Рисование осей координат}
y:=max*ymas;
line(0,round(y),500,round(y));
outtextxy(490,round(y)-10,'X');
x:=-a*xmas;
line(round(x),0,round(x),400);
outtextxy(round(x)-10,0,'Y');
{Рисование графика}
setcolor(14);
moveto(0, round(y-f(a)*ymas));
for i:=1 to n do
begin
x:=a+i*h;
lineto(round((x-a)*xmas),round(y-f(x)*ymas));
end;
c:=readkey;
closegraph {Выход из графического режима}
End.
2. Изучить и запустить программу вывода на экран квадрата, вращающегося относительно одного из углов. Изменить программу, чтобы квадрат вращался вокруг центра симметрии.
uses graph,crt;
type arr5=array[1..5] of double;
var a,r: arr5;
t,dt: double;
gd,gm: integer;
procedure rect(r,a:arr5; t:double);
Var I,X,y: integer;
begin
x:=320+round(r[1]*cos(a[1]+t));
y:=240-round(r[1]*sin(a[1]+t));
moveto(x,y);
for i:=2 to 5 do begin
x:=320+round(r[i]*cos(a[i]+t));
y:=240-round(r[i]*sin(a[i]+t));
lineto(x,y);
end
end;
Begin
r[1]:=0; r[2]:=100; r[3]:=100*sqrt(2);
r[4]:=100; r[5]:=0;
a[1]:=0; a[2]:=0; a[3]:=pi/4; a[4]:=pi/2; a[5]:=0;
detectgraph(gd,gm);
Initgraph(gd,gm,'');
setlinestyle(0,0,3);
t:=0; dt:=pi/180;
repeat
setcolor(15);
rect(r,a,t);
delay(1000);
setcolor(0);
rect(r,a,t);
t:=t+dt;
until keypressed;
closegraph;
End.
Задания для самостоятельной работы
1. Построить:
а) треугольник с вершинами (100, 100), (150, 100), (80, 170);
б) два прямоугольника 300200 в левом верхнем углу и в центре экрана;
в) шестиугольник, вписанный в окружность радиусом 120 в центре экрана.
2. Дано натуральное
число n (
).
Записать его шестью цифрами, используя
девятисегментный шаблон (как на почтовых
конвертах).
3. Вывести на экран графики следующих кривых:
а) астроида x = cos3t, y = sin3t, t [0, 2];
б) кардиоида
,
,
a>0,
.
в) циклоида
,
,
а>0,
;
г) улитка Паскаля
,
,
a>0,
b>0,
.
Рассмотреть случаи, когда
,
,
.
4. Изобразить на экране точку, движущуюся по окружности с постоянной угловой скоростью.
5. Изобразить на экране две касающиеся окружности радиусов r1 и r2, вращающиеся в плоскости экрана вокруг точки касания, расположенной в центре экрана.
6. Изобразить на экране стрелку, вращающуюся в плоскости экрана вокруг тупого конца, который расположен в центре экрана.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. М.: Издательство «ОМД Групп», 2003. – 616 с.
2. Фаронов В.В. Турбо Паскаль 7.0: Учеб. пособие. СПб.: Питер, 2007. – 367 с.
3. Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф. – СПб: Питер, 2003. – 336 с.
4. Немнюгин С.А. Turbo Pascal. – СПб: Питер, 2000. – 496 с.
5. Кострюков С.А., Моисеев С.И., Пантелеев И.Н. Практикум на Паскале. Учеб. пособие. Воронеж: Изд-во ВГТУ, 2000.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 1
Знакомство со средой программирования Turbo Pascal 7.0 2
Лабораторная работа №1 3
Лабораторная работа №2 10
Лабораторная работа №3 14
Лабораторная работа №4 20
Лабораторная работа №5 26
Лабораторная работа №6 35
Лабораторная работа №7 46
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 55
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ТУРБО ПАСКАЛЕ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к выполнению лабораторных работ по курсам «Информатика» и «Специальные главы информатики» для студентов направлений 150400 «Металлургия», 140700 «Ядерная энергетика и теплофизика» и 131000 «Нефтегазовое дело» очной формы обучения
Составители:
Кострюков Сергей Александрович
Пешков Вадим Вячеславович
Шунин Генадий Евгеньевич
В авторской редакции
Компьютерный набор В.В. Пешкова
Подписано к изданию 28.01.2014. Уч.-изд. л. 3,4. “С” .
ФГБОУ ВПО «Воронежский государственный технический университет»
