Отчет по практике по Turbo Pascal

Практическое задание №1

Записать выражение на языке Паскаль. Использование стандартных функций.
Оператор присваивания.

Цель задания
Освоение простейших конструкций языка Паскаль.
Получение навыков работы с числами. Использование стандартных функций,
арифметических операций для записи математических выражений на языке
Паскаль.
Получение практических навыков работы над ошибками. Освоение синтаксиса
языка Паскаль.

Поставка задачи

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

|1. a = | x=47,8 |
|(x+y/(5+x))/|y-sinx+x|+5arctgx|y=-5,5 |
| |u=2,3 |
| |v=0,8 |
|2. b= etgu+1 lnarcsinv [pic] | |

Листинг программы

program zadanie_1;
uses crt;
var
x,y,u,v:real;
a,b:real;
begin
clrscr;
x:=47.8;
y:=-5.5;
u:=2.3;
v:=0.8;
writeln('Протокол работы програмы');
writeln('вычисление значений a и b');
a:=(x+y/(5+sqrt(x)))/abs(y-sin(x)+sqrt(x))+5*arctan(x);
b:=exp(sin(u)/cos(u)+1)*ln(arctan(v/sqrt(1-v*v)));
writeln('a=',a);
writeln('b=',b);
writeln('конец счета');
readln;
readln;
end.

Протокол работы програмы

вычисление значений a и b

a= 3.0959950475E+01

b=-6.7000345276E-02

конец счета

В данной программе были использованы следующие стандартные функции:
sin(x), cos(x), abs(x), sqr(x), sqrt(x), arctan(x),exp(x),ln(x).
В частности через функции: arctan(x), sin(x), cos(x), были выражены
такие тригонометрические функции как arcos(x), tg(x).

В ходе работы ошибок допущено не было.

Практическое задание №2

Организация ввода/вывода стандартных типов данных

Цель задания
1. Освоение простейшей структуры программы.
1. Получение навыков в организации ввода/вывода значений стандартных типов
данных.
2. Получение практических навыков работы в интерактивном (диалоговом)
режиме.
Постановка задачи

Организовать ввод/вывод данных заданных типов, предусмотрите выводы с
соответствующими заголовками.

| |целые числа | |Вещественные числа |
| | |формат | |формат |
|1 |2 |3 |4 |5 |6 |7|8 |9 |10 |
|N |ко|ста|ш |ко|Ст|ш|зна|си|печать |
| |ли|нда|и |ли|ан| |ков|мв|булевской|
|в |че|ртн|р |че|да|и| |ол|переменно|
|а |ст|ый |и |ст|рт|р|пос|ов|й |
|р |во| |н |во|ны|и|ле | | |
|и | | |а | |й |н|. | | |
|а | | | | | |а| | | |
|н | | |п | | | | | | |
|т | | |о | | | | | | |
|а | | |л | | |п| | | |
| | | |я | | |о| | | |
| | | | | | |л| | | |
| | | | | | |я| | | |
|13 |3 |c |3 |6 |C |5|2 |4 |FALSE |

Листинг программы

program zadanie_2;
uses crt;
const
log=false;
var
k,l,m:integer;
a,b,c,d,e,f:real;
s1,s2,s3,s4:char;
begin
clrscr;
writeln('Введите целые числа K,L,M:');
read(k,l,m);
writeln('':30,'целые числа');
writeln('','стандартная форма','':18,'заданная ширина поля');
writeln('',k,' ',l,' ',m,'':30,'K=',k:3,' L=',l:3,' M=',m:3);
writeln;
writeln('':25,'Введите вещественные числа A,B,C,D,E,F:');
readln(a,b,c,d,e,f);
writeln('':20,'стандартная форма');
writeln('',a,' ',b,' ',c,' ',d,' ',e,' ',f);
writeln('':18,'заданная ширина поля');
writeln('A=',a:5:2,' B=',b:5:2,' C=',c:5:2,' D=',d:5:2,' E=',e:5:2,'
F=',f:5:2);
writeln;
writeln('Введите символы S1,S2,S3,S4:');
readln(s1,s2,s3,s4);
writeln('символьные переменные:');
writeln('S1=',s1,' S2=',s2,' S3=',s3,' S4=',s4);
writeln('печать символьных переменных с шириной поля 5:');
writeln(s1:5,s2:5,s3:5,s4:5);
writeln('логическая переменная равна ',log);
readln;
readln;
end.
Протокол работы

Введите целые числа K,L,M:
1
2
3
целые числа
стандартная форма заданная ширина поля
1 2 3 K= 1 L= 2 M= 3

Введите вещественные числа A,B,C,D,E,F:
234 4 5 6 7 8
стандартная форма
2.3400000000E+02 4.0000000000E+00 5.0000000000E+00 6.0000000000E+00
7.00000
00000E+00 8.0000000000E+00
заданная ширина поля
A=234.00 B= 4.00 C= 5.00 D= 6.00 E= 7.00 F= 8.00

Введите символы S1,S2,S3,S4:
qwer
символьные переменные:
S1=q S2=w S3=e S4=r
печать символьных переменных с шириной поля 5:
q w e r
логическая переменная равна FALSE

3

Практическое задание №3

Разветвляющие структуры. Оператор IF с GO TO, THEN, ELSE

Цель задания
1. Получение навыков в использовании условного оператора при написании
программ.
2. Разбор и знакомство с задачами, для решения которых используется
условный оператор.
Постановка задачи
Организуйте ввод и вывод пяти целых положительных чисел a, b, c, p,
q. Определив остаток К от деления на 9 величины М, равной [pic]вычислите
значение функции

y=arctg4,7x/(x2-secx)-xcosx ,при к=0
y=2sinx ,при к=1
y=cos(|ax2+b|-1) ,при к=2

Листинг программы

program zadanie_3;
uses crt;
var
a,b,c,p,q,k,m:integer;
x,y:real;
begin
clrscr;
writeln('Протокол работы');
writeln('Введите исходные данные:');
readln(a,b,c,p,q,x);
writeln('a=', a,', b=',b,', c=',c,', p=',p,', q=',q,', x=',x:6:3);
m:=(a+b+c+p) div q;
k:=m mod 9;
if k=0 then
begin
y:=sqrt(arctan(4.7*x)/x*x-sin(x))-exp(cos(x)*cos(x)*ln(x));
writeln('К=0, значение переменной Y равно ',y:6:3);
end;
if k=1 then
begin
y:=exp(sin(x)*ln(2));
writeln('К=1, значение переменной Y равно ',y:6:3);
end;
if k=2 then
begin
y:=cos(abs(a*x*x+b)-1);
writeln('К=2, значение переменной Y равно ',y:6:3);
end;
if k>2 then
writeln('Значение переменной Y неопредено т.к. К>2');
readln;
end.

Протокол работы

Введите исходные данные:
2
3
76
3
76
4
a=2, b=3, c=76, p=3, q=76, x= 4.000
К=1, значение переменной Y равно 0.592

В данной программе было использовано четыре оператора IF в сокращенной
форме.
При работе над данной программой ошибок допущено не было.

Практическое здание №4

Решение задач, описываемых алгоритмами циклической структуры с
использованием одномерных массивов.

Цель задания
1. Получение практических навыков работы с одномерным массивом.
1. Закрепление навыков в организации ввода/вывода значений одномерного
массива.
2. Получение практических навыков работы в интерактивном(диалоговом)
режиме.
3. Работа с диагностическими сообщениями транслятора при выполнении
программ с одномерным массивом.
Постановка задачи

Организуйте ввод/вывод одномерного массива, предусмотрите вывод
соответствующими заголовками.

В массиве {zi}, i=1, 2, … , 10 есть положительные и отрицательные
элементы. Подсчитать количество отрицательных и положительных элементов.
Решить задачу для двух наборов данных:
а. –5,25,17,18,20,-10,-9,-5,12,23;
б.15,20,15,4,-8,-5,-20,-43,-9,-25;

Листинг программы

program zadanie_4;
uses crt;
const
n=10;
var
z: array [1..n] of integer;
a,b,i:integer;
begin
clrscr;
writeln('Введите через пробел 10 чисел');
for i:=1 to n do
begin
readln(z[i]);
if z[i]>0 then
a:=a+1;
if z[i]<0 then
b:=b+1;
end;
clrscr;
writeln('Исходные данные');
for i:=1 to n do
write(z[i]:4);
writeln;
writeln('Количество положительных элементов массива Z[1..n] равно',a:4);
writeln('Количество отрицательных элементов массива Z[1..n] равно',b:4);
readln
end.

Протокол работы

А)Введите через пробел 10 чисел
-5
25
17
18
20
-10
-9
-5
12
23

Исходные данные
-5 25 17 18 20 -10 -9 -5 12 23
Количество положительных элементов массива Z[1..n] равно 6
Количество отрицательных элементов массива Z[1..n] равно 4

Б)Введите через пробел 10 чисел
15
20
15
4
-8
-5
-20
-43
-9
-25

Исходные данные
15 20 15 4 -8 -5 -20 -43 -9 -25
Количество положительных элементов массива Z[1..n] равно 4
Количество отрицательных элементов массива Z[1..n] равно 6

Практическое задание №5

Решение задач, описываемых алгоритмами циклической структуры с
использованием двумерных массивов. Регулярные типы.

Цель задания

1. Получение практических навыков работы с двумерным массивом.
1. Закрепление навыков в организации ввода/вывода значений двумерного
массива.
2. Получение практических навыков работы в интерактивном (диалоговом)
режиме.
3. Работа с диагностическими сообщениями транслятора при выполнении
программ с двумерным массивом.

Постановка задачи

Организуйте построчный ввод вещественной квадратной матрицы А 4-
го порядка. Сформировать матрицу В 4-го порядка выполнив условие:
Начиная с первого элемента каждой строки А увеличить последующий на 2,
следующий на 4, на 6.

Листинг программы

program zadanie_5;
uses crt;
const
n=4;
var
a: array [1..n,1..n] of real;
b: array [1..n,1..n] of real;
i,j,d:integer;
begin
clrscr;
for j:=1 to n do
for i:=1 to n do
begin
clrscr; gotoxy(1,1);
write('элемент — ',j,',',i,':'); readln(a[j,i]);
end;
clrscr;
writeln;
writeln('Исходная матрица:');
for i:=1 to n do
begin
d:=d+2;
for j:=1 to n do
begin
b[j,i]:=d+a[j,i];
gotoxy(i*6,j+3);
writeln(a[j,i]:3:1)
end;
end;
writeln;
writeln('преобразованная матрица:');
for i:=1 to n do
for j:=1 to n do
begin
gotoxy(i*6,j+10);
writeln(b[j,i]:3:1)
end;
readln;
end.

Протокол работы

Исходная матрица:

34.0 4.0 5.0 34.0
45.0 43.0 54.0 34.0
5.0 6.0 4.0 5.0
6.0 7.8 56.0 5.0

преобразованная матрица:

36.0 8.0 11.0 42.0
47.0 47.0 60.0 42.0
7.0 10.0 10.0 13.0
8.0 11.8 62.0 13.0

Практическое задание №6

Решение задач, описываемых алгоритмами циклической структуры с
использованием двумерных массивов. Регулярные типы.

Цель задания

1. Получение практических навыков работы операторами графики.
2. Получение навыков построения графических объектов и перемещение на
плоскости.
3. Работа с диагностическими сообщениями транслятора при выполнении
программ с графическими объектами.

Постановка задачи

Построить систему координат с началом в центре координат. Переместить
фигуру согласно рисунку и закрасить указанную область.

program zadanie_6;
uses graph, crt;
var
GraphDriver,
GraphMode,
ErrorCode,
X0,
Y0
: Integer;
Begin
0 GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, '..pgi');
ErrorCode := GraphResult;
if ErrorCode <> grOk
then
begin
WriteLn('Graphics error:', GraphErrorMsg(ErrorCode));
Exit;
end;
X0 := GetMaxX div 2;
Y0 := GetMaxY div 2;
SetColor(White);
Bar(0, 0, GetMaxX, GetMaxY);
SetColor(black);
Line(X0, 50, X0, GetMaxY — 50);
Line(50, Y0, GetMaxX — 50, Y0);
Rectangle(X0 + 80, Y0 — 80, X0 + 200, Y0 — 200);
Rectangle(X0 + 105, Y0 — 105, X0 + 175, Y0 — 175);
Setfillstyle(1,black);
Floodfill(450,125,black);
OutTextXY(50, 400, 'Нажмите Enter для продолжения');
ReadKey;
Rectangle(X0 + 80, Y0 + 80, X0 + 200, Y0 + 200);
Rectangle(X0 + 105, Y0 + 105, X0+175,Y0+175);
SetFillStyle(1, Black);
FloodFill(450, 415, Black);
ReadKey;
CloseGraph;
End.

Протокол работы

[pic]
[pic]

Оглавление

Введение

Практическое задание №1
Записать выражение на языке Паскаль. Использование стандартных функций.
Оператор присваивания.

Практическое задание №2

Организация ввода/вывода стандартных типов данных

Практическое задание №3

Разветвляющие структуры. Оператор IF с GO TO, THEN, ELSE

Практическое здание №4

Решение задач, описываемых алгоритмами циклической структуры с
использованием одномерных массивов.

Практическое задание №5

Решение задач, описываемых алгоритмами циклической структуры с
использованием двумерных массивов. Регулярные типы.

Практическое задание №6

Решение задач, описываемых алгоритмами циклической структуры с
использованием двумерных массивов. Регулярные типы.

Заключение

Список литературы

Заключение

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

Добавить комментарий