Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Перечень лабораторных работ





1. Освоение клавиатуры IBM-совместимого персонального компьютера и основных команд, необходимых при работе на Турбо - Паскале.

2. Программирование вычислений по формулам

3. Программирование разветвлений

4. Программирование циклов. Вычисление сумм и произведений Суммирование рядов с заданной точностью.

5. Обработка одномерных массивов.

6. Обработка двумерных массивов.

 

3.КРАТКИЕ МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ. ПРИМЕРЫ ВЫПОЛНЕНИЯ ЗАДАНИЙ.

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

Номер варианта выбирается из таблицы вариантов заданий и совпадает с последними двумя цифрами личного шифра студента (Приложение 1).При выполнении контрольных работ во всех заданиях, кроме первого, необходимо разработать блок-схему алгоритма и программу на языке Турбо - Паскаль (в первом задании только программу).

Задания 1.1 - 1.4 охватывают тему «Основные конструкции языка программирования Турбо – Паскаль». Задания 1.3-1.4 и 2.1 охватывают тему «Организация циклических вычислений». Задание 2.2 охватывает тему «Обработка одномерных массивов». Задание 2.3 — тему «Обработка двумерных массивов».

 

¨ Пример выполнения задания 1.1.

Условие задачи: Два числа X и Y задаются при помощи оператора ввода. Вычислить сумму их квадратов, модуль разности и произведение.

Текст программы на языке Паскаль приводится на Рис.1. Здесь переменная SUM используется для обозначения суммы квадратов, переменная М - для обозначения модуля разности, переменная P -для обозначения произведения.

program prim_1;

{вычисления по формулам}

var x,y:real;

sum,m,p:real;

begin

write('введите x=');readln(x);

write('введите y=');readln(y);

sum:=x*x+y*y;

m:=abs(x-y);

p:=x*y;

writeln('сумма квадратов=',sum:6:3);

writeln('модуль разности=',m:6:3);

writeln('произведение=',p:6:3);

end.

Рис.1 Текст программы для задания 1.1.

¨ Пример выполнения задания 1.2.

Условие задачи: Значения переменных А и В задаются оператором ввода. Программа должна отпечатать А > B, A < B или A = B в зависимости от значений А и В.

Рис.2. Блок-схема для задания 1.2.

Блок-схема и текст программы приведены на Рис.2 и 3. Алгоритм заключается в сравнении вводимых величин А и В и выводе на экран соответствующих сообщений.

 

program prim_2;

{использование условного оператора}

var a,b:real;

begin

write('введите а=');readln(a);

write('введите b=');readln(b);

if a>b then writeln('А больше В')

else if a<b then writeln('А меньше В')

else writeln('А равно В');

end.

Рис.3 Текст программы для задания 1.2.

¨ Пример выполнения задания 1.3.,варианты 1..4.

Условие задачи: Составить блок-схему алгоритма и программу для вычисления и вывода на экран таблицы значений функции

,

где аргумент Х изменяется от начального значения (например, 1) до конечного (например, 2) с заданным шагом (например, 0,05). Параметры А и В задаются оператором ввода.

Здесь переменная xmin используется для обозначения начального значения аргумента Х, xmax - для обозначения конечного значения аргумента Х, dx - для обозначения шага, А и В - для обозначения параметров, необходимых для вычислений, X и Y - для обозначения текущего значения аргумента и текущего значения функции. Эта задача может быть решена четырьмя способами

Блок-схема алгоритма и текст программы с использованием:

- оператора условия (IF-THEN) приведены на Рис.4,8

- цикла с параметром (FOR-DO) приведены на Рис.5,9

- цикла с предусловием (WHILE-DO) приведены на Рис.6,10

- цикла с постусловием (REPEAT-UNTIL) приведены на Рис.7,11

 

 

Рис.4. Блок-схема для задания 1.3.,вариант 1.

 

Рис.5. Блок-схема для задания 1.3.,вариант 2.

 

 

Рис.6. Блок-схема для задания 1.3.,вариант 3.

 

Рис.7. Блок-схема для задания 1.3.,вариант 4.

 

 

program prim_3;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора IF-THEN}

label l10;

var a,b:real;

xmin,xmax,dx:real;

x,y:real;

begin

write('A=');readln(a);

write('B=');readln(b);

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

x:=xmin;

l10:

y:=A*sin(B*x)/x;

writeln('|',x:6:2,'|',y:7:2,'|');

x:=x+dx;

if (x<=xmax) then goto l10;

writeln('|___|___|');

end.

Рис.8. Текст программы для задания 1.3.,вариант 1.

program prim_4;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора FOR-DO}

var a,b:real;

xmin,xmax,dx:real;

x,y:real;

i,n:integer;

begin

write('A=');readln(a);

write('B=');readln(b);

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

n:=trunc((xmax-xmin)/dx)+1;

x:=xmin;

for i:=1 to n do

begin

y:=A*sin(B*x)/x;

writeln('|',x:6:2,'|',y:7:2,'|');

x:=x+dx;

end;

writeln('|___|___|');

end.

Рис.9. Текст программы для задания 1.3.,вариант 2.

program prim_5;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора WHILE-DO}

var a,b:real;

xmin,xmax,dx:real;

x,y:real;

begin

write('A=');readln(a);

write('B=');readln(b);

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

x:=xmin;

while x < xmax+dx/2 do

begin

y:=A*sin(B*x)/x;

writeln('|',x:6:2,'|',y:7:2,'|');

x:=x+dx;

end;

writeln('|___|___|');

end.

Рис.10. Текст программы для задания 1.3.,вариант 3.

program prim_6;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора REPEAT-UNTIL}

var a,b:real;

xmin,xmax,dx:real;

x,y:real;

begin

write('A=');readln(a);

write('B=');readln(b);

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

x:=xmin;

repeat

y:=A*sin(B*x)/x;

writeln('|',x:6:2,'|',y:7:2,'|');

x:=x+dx;

until x > xmax+dx/2;

writeln('|___|___|');

end.

Рис.11. Текст программы для задания 1.3.,вариант 4.

¨ Пример выполнения задания 1.4.

Условие задачи: Составить блок-схему алгоритма и программу для вычисления и вывода на экран таблицы значений функции

,

которая не определена на интервале (1.0,4.0)

Результаты работы программы должны быть представлены в виде таблицы:

начальное значение=3

конечное значение=6

шаг=0.5

----------------------

x | y

----------------------

3.00 |Функция не определена

3.50 |Функция не определена

4.00 | 0.00

4.50 | 1.32

5.00 | 2.00

5.50 | 2.60

6.00 | 3.16

----------------------

Здесь переменная xmin используется для обозначения начального значения аргумента Х, xmax - для обозначения конечного значения аргумента Х, dx - для обозначения шага, X и Y - для обозначения текущего значения аргумента и текущего значения функции, R -вспомогательная переменная.

 

program prim_7;

{программа вычислений и вывода на экран таблицы значений функции с использованием оператора WHILE и проверкой на допустимость вычисляемого значения}

var xmin,xmax,dx:real;

y,x,r:real;

begin

write('начальное значение=');readln(xmin);

write('конечное значение=');readln(xmax);

write('шаг=');readln(dx);

writeln('|___|___|');

writeln('| X | Y |');

writeln('|___|___|');

x:=xmin;

while x < (xmax+dx/2) do

begin

r:=x*x-5*x+4;

if (r>=0.0) then

begin

y:=sqrt(r);

writeln('|',x:6:2,'|',y:7:2,'|');

end

else

writeln('|',x:6:2,'|','Функция не определена');

x:=x+dx;

end;

writeln('|___|___|');

end.

Рис 12. Текст программы для задания 1.4.

 

 


Рис.13. Блок-схема для задания 1.4.

 

 

¨ Пример выполнения задания 2.1.

Условие задачи: составить блок-схему алгоритма и программу для вычисления суммы бесконечного числового ряда:

 

 

Суммирование прекратить при появлении в сумме слагаемых, имеющих абсолютную величину, меньшую заданной погрешности d. Значение d задается при помощи оператора ввода.

Блок-схема алгоритма и вариант текста программы приведены на Рис.14,15.Переменная I обозначает номер, а переменная А- значение каждого слагаемого, входящего в сумму. Суммирование слагаемых продолжается до тех пор, пока выполняется условие A > d.

 

program prim_8;

var s,a,d:real;

i:integer;

begin

write('введите погрешность');readln(d);

s:= 0;

i:= 2;

a:= 1/4;

while abs(a) > d do

begin

s:= s+a;

inc(i,2);

a:= 1/sqr(i);

end;

writeln('сумма ряда =',s:8:5);

end.

Рис.14. Текст программы для задания 2.1.

Рис.15. Блок-схема для задания 2.1.

 

¨ Пример 1 выполнения задания 2.2.

Условие задачи: В заданном целочисленном массиве A из 20 элементов найти сумму элементов, имеющих четное значение, и сумму элементов, имеющих нечетное значение.

Рис.16.Блок-схема для выполнения задания 2.2,пример 1.

Блок-схема алгоритма и текст программы изображены на Рис.16,17.Переменные S1 и S2 обозначают соответственно суммы четных и нечетных элементов, переменная I - порядковый номер элементов массива.

program prim_9;

type vector = array[1..20] of integer;

var A:vector;

i,s1,s2:integer;

begin

writeln('введите массив целочисленных значений');

for i:= 1 to 20 do

begin

write('A[',i,']=');

readln(A[i]);

end;

s1:= 0; s2:= 0;

for i:= 1 to 20 do

if A[i] mod 2 =0 then s1:= s1 + A[i]

else s2:= s2 + A[i];

writeln('сумма четных элементов=',s1);

writeln('сумма нечетных элементов=',s2);

end.

Рис.17. Текст программы для задания 2.2,пример 1.

¨ Пример 2 задания 2.2.

Условие задачи: В заданном массиве X из N элементов найти элемент, имеющий максимальное значение, и его порядковый номер.

Переменная nmax обозначает порядковый номер элемента, имеющего максимальное значение. Переменная xmax содержит его значение. Массив X определен, как вектор вещественных значений, содержащий максимум 100 элементов. Реальное количество элементов вводится во время выполнения программы.

Поиск элемента, имеющего максимальное значение, и его порядкового номера выполняется в цикле FOR. Перед выполнением цикла предполагается, что максимальным является первый элемент массива. В цикле происходит сравнение всех последующих элементов с максимальным. Если очередной проверяемый элемент окажется больше, то он принимается за максимальный и т.д.

Блок-схема и текст программы изображены на Рис. 18,19.

Рис.18.Блок-схема алгоритма для задания 2.2,пример 2.

 

program prim_10;

type vector = array[1..100] of real;

var X:vector;

n,i,nmax:integer;

xmax:real;

begin

write('введите число элементов массива');

readln(n);

writeln('введите массив ');

for i:= 1 to N do

begin

write('X[',i,']=');

readln(X[i]);

end;

xmax:= X[1]; nmax:= 1;

for i:= 2 to N do

if X[i] > xmax then begin

xmax:= X[i];

nmax:= i;

end;

writeln('максимальный элемент массива=',xmax:8:4);

writeln('номер элемента=',nmax);

end.

Рис.19. Текст программы для задания 2.2,пример 2.

¨ Пример выполнения задания 2.3.

Условие задачи: Ввести двумерный вещественный массив, выполнить его транспонирование: поменять строки и столбцы местами. Осуществить контрольный вывод исходного массива и массива результатов. Результаты работы программы должны быть представлены в виде:

Введите к-во строк и столбцов

2 2

Введите массив А

a(1,1)=1

a(1,2)=2

a(2,1)=3

a(2,2)=4

Массив A

1.0 2.0

3.0 4.0

Массив B

1.0 3.0

2.0 4.0

Рис.21.Блок-схема для выполнения задания 2.3.

 

program prim_11;

const row=10;col=10;

type

matr1=array[1..row,1..col] of real;

matr2=array[1..col,1..row] of real;

var

i,j,n,m:integer;

a:matr1; b:matr2;

begin

{ввод массива A}

writeln('Введите к-во строк и столбцов'); readln(n,m);

writeln('Введите массив А');

for i:=1 to n do

for j:=1 to m do

begin

write('a(',i:1,',',j:1,')=');

readln(a[i,j]);

end;

{вывод массива A}

writeln('Массив A');

for i:=1 to n do

begin

for j:=1 to m do write(a[i,j]:7:1);

writeln;

end;

{формирование массива В}

for i:=1 to n do

for j:=1 to m do

b[j,i]:=a[i,j];

{вывод массива B}

writeln('Массив B');

for i:=1 to n do

begin

for j:=1 to m do write(b[i,j]:7:1);

writeln;

end;

readln;

end.

Рис.21. Текст программы для задания 2.3.

Упрощенная блок-схема алгоритма и текст программы изображены на Рис.20,21.

4. ВАРИАНТЫ ЗАДАНИЙ

à Задание 1.1.

Date: 2015-12-13; view: 384; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию