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