Смекни!
smekni.com

Отчет по практике по Turbo Pascal (стр. 1 из 2)

Практическое задание №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)