Отчет по практике по Turbo Pascal
Практическое задание №1
Записать выражение на языке Паскаль. Использование стандартных функций. Оператор присваивания.
Цель задания
1.
2.
3.
Поставка задачи
Записать математическое выражение на языке Паскаль, и составить программу вычисления значения оператора присваивания. Описать порядок действий, над выражением исходя из приоритетности вычислений стандартных функций и арифметических операции.
1. a = (x+y/(5+x))/|y-sinx+x|+5arctgx 2. b= etgu+1 lnarcsinv |
x=47,8 y=-5,5 u=2,3 v=0,8 |
Листинг программы
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.
2.
3.
Постановка задачи
Организовать ввод/вывод данных заданных типов, предусмотрите выводы с соответствующими заголовками.
целые числа |
Вещественные числа |
|||||||||
формат |
формат |
|||||||||
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 величины М, равной
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.
2.
3.
4.
Постановка задачи
Организуйте ввод/вывод одномерного массива, предусмотрите вывод соответствующими заголовками.
В массиве {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.
2.
3.
4.
Постановка задачи
Организуйте построчный ввод вещественной квадратной матрицы А 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
Решение задач, описываемых алгоритмами циклической структуры с использованием двумерных массивов. Регулярные типы.
Цель задания
- Получение практических навыков работы операторами графики.
- Получение навыков построения графических объектов и перемещение на плоскости.
- Работа с диагностическими сообщениями транслятора при выполнении программ с графическими объектами.
Постановка задачи
Построить систему координат с началом в центре координат. Переместить фигуру согласно рисунку и закрасить указанную область.
program zadanie_6;
uses graph, crt;
var
GraphDriver,
GraphMode,
ErrorCode,
X0,
Y0
: Integer;
Begin
0 GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, '..\bp\bgi');
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.
Протокол работы
Оглавление
Введение
Практическое задание №1
Записать выражение на языке Паскаль. Использование стандартных функций. Оператор присваивания.
Практическое задание №2
Организация ввода/вывода стандартных типов данных
Практическое задание №3
Разветвляющие структуры. Оператор IF с GO TO, THEN, ELSE
Практическое здание №4
Решение задач, описываемых алгоритмами циклической структуры с использованием одномерных массивов.
Практическое задание №5
Решение задач, описываемых алгоритмами циклической структуры с использованием двумерных массивов. Регулярные типы.
Практическое задание №6
Решение задач, описываемых алгоритмами циклической структуры с использованием двумерных массивов. Регулярные типы.
Заключение
Список литературы
Заключение
Практические занятия используются для тщательного изучения содержательно-методических принципов построения программы школьного курса информатики и учебных пособий, содержания и структуры прикладного программного обеспечения школьного предмета информатики, обсуждения методики изучения отдельных тем курса с различными вариантами технического и методического обеспечения, в том числе сопровождаемого самостоятельными программными разработками студентов; разработки и обсуждения материалов для внеклассной работы по информатике и вычислительной технике в средней школе