Главная страница

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


Скачать 443 Kb.
НазваниеРешение квадратного уравнения. Оператор варианта. Вычисление площадей фигур. 10. Примерные задания к контрольной работе
АнкорPaskal-1.doc
Дата07.03.2018
Размер443 Kb.
Формат файлаdoc
Имя файлаPaskal-1.doc
ТипРешение
#16375
страница8 из 14
1   ...   4   5   6   7   8   9   10   11   ...   14

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 14



СУММА. ПРОИЗВЕДЕНИЕ. ТАБУЛИРОВАНИЕ.
Рассмотрим суммирование числового ряда, если элемент ряда является

алгебраическим выражением с помощью циклов ДЛЯ, ПОКА, ДО:
Найти сумму ряда для i от 1 до 15, каждый элемент которого выражается

по формуле , то есть найти сумму: 6+9+14+...
Program Summa; Uses crt; Program Summa; Uses crt;

var s,i,n: integer; var s,i,n,h: integer;

Begin Begin

clrscr; clrscr;

s:=0; n:=15; s:=0; i:=1; n:=15; h:=1;

FOR i:=1 TO n DO s:=s+(i*i+5); WHILE i<=n DO

write('Сумма числового ряда S=',s); begin

End. s:=s+(i*i+5);

i:=i+h;

Program Summa; Uses crt; end;

var s,i,n,h: integer; write('Сумма ряда S=',s);

Begin End.

clrscr;

s:=0; i:=1; n:=15; h:=1;

REPEAT

s:=s+(i*i+5);

i:=i+h;

UNTIL i>n;

write('Сумма числового ряда S=',s);

End.

Найти произведение чисел ряда, каждый элемент которого определяется по формуле (i+1)/i и i изменяется от 1 до 20 с шагом 0.2 , т.е. найти произведение чисел: P=2*1.8333*1.714*1.625*...

Program Mult; Uses crt;

var i,p,n,h: real;

Begin

clrscr;

p:=1; i:=1; n:=20; h:=0.2;

while i<=n do begin p:=p*(i+1)/I; i:=i+h; end;

write('Произведение ряда чисел P=',p);

End.
З А Д А Н И Я:

1. Найти сумму чисел ряда, каждый элемент которого определяется по

формуле (i+5)/i и i изменяется от 1 до 20 с шагом 0.4.

2. Получить таблицу для построения графика функции

на отрезке [7;15] с шагом 0.4.
3. Найти сумму ряда чисел, каждый элемент которого определяется по

формуле (i+5)/(i*i) и i=1,2,3,4,... . Суммировать до элемента равного 6E-3.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 15



ТАБУЛИРОВАНИЕ (продолжение)
Для получения качественного вывода таблицы применяется указание ШИРИНЫ

ПОЛЯ ВЫВОДА, которая пишется после переменной через двоеточие.

Например, а:5 или в:6 .Для числа <а> выделяется поле из пяти символов.

Но следует иметь ввиду, что целые и вещественные числа при таком выводе

в таблице будут расположены нестандартно.
Для получения более качественного вывода таблицы применяют GOTOXY(C,R).

C - номер символа в строке, изменяется от 1 до 79 , { Column }

R - номер строки, изменяется от 1 до 24. { Row }

При выводе таблицы значение C не изменяется, а значение R должно, после каждой выведенной строки, увеличиваться на 1.
Рассмотрим программу решения задания #2 практического занятия #14.

Program Tab; Uses crt;

var x,h,n: real; r:byte;

Begin

clrscr;

x:=7; h:=0.4; n:=15; r:=1; { r - номер строки }

repeat

gotoxy(1,r); write('X=',x:2,' Y=',(x*x+5*x+4)/(x-6));

x:=x+h; r:=r+1; ПРИМЕЧАНИЯ: 1. Выравнивание разрядов

until x>n; производится if-then-else

End. 2. Если строк в таблице больше, чем строк на

экране, то применяется поэкранный вывод с

очисткой экрана (см. WHEREY занятие № 17).
Встречаются таблицы, в которых при некоторых значениях аргументов значения функции не определяются. В этом случае необходимо исключить прерывание программы и выдать на экран сообщение об отсутствии функции.

Вывести таблицу значений функции на интервале 1,2..15.
Program Tab; Uses crt;

var x, n: integer;

Begin

clrscr; n:=15;

for x:=1 to n do if x=5 then writeln('X=',x:2,' Y-не определяется')

else writeln('X=',x:2,' Y=',1/(x-5) );

End.
З А Д А Н И Я:

1. Получить таблицу для построения графика функции y=sin х, используя

указание ширины поля вывода.

2. Получить эту же таблицу с использованием gotoxy(c,r);

3. Вывести таблицу в центральной части экрана.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 16



ТАБЛИЦА П И Ф А Г О Р А
Если телом цикла является циклическая конструкция, то такие циклы называют ВЛОЖЕННЫМИ.
Program Pifagor; Uses crt;

var i,j: integer;

Begin

clrscr;

gotoxy(20,1);writeln('Таблица Пифагора');
FOR I:=1 TO 9 DO

BEGIN

FOR J:=1 TO 9 DO

BEGIN

gotoxy(i*4,j*2);

write(i*j:4);

END;

WRITELN;

END;
for i:=1 to 41 do

begin

gotoxy(i,3);write('-');

if i<=19 then begin

gotoxy(9,i);

write('!');

end;

end;

gotoxy(5,22);

readkey;

End.
З А Д А Н И Я:
1. Набрать программу и получить на экране таблицу.

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

3. Получить максимально возможную прямоугольную таблицу.


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 17

П Р О Ц Е Д У Р Ы


Программу, состоящую только из операторов, называют МОНОЛИТНОЙ.

Программу, содержащую процедуры и функции называют МОДУЛЬНОЙ.

ПРОЦЕДУРА - часть программы, имеющая имя и предназначенная для решения определенной задачи. Каждая процедура определяется только однажды, но может использоваться многократно. Процедуры определяются в разделе описаний вслед за разделом переменных.

PROCEDURE Name; prоcedure - служебное слово;

BEGIN Name - идентификатор отражающий смысл данной задачи;

ИНСТРУКЦИЯ Описание процедуры само по себе никакого действия не

END; вызывает. Чтобы исполнить процедуру, необходимо в нужном

месте программы поместить обращение к ней, указав Name; .
Например: Напечатать сорок любых символов.

В программе используется функция WhereX – она определяет позицию курсора в строке (принимает значения от 1 до 80, изменяется автоматически при выводе информации на экран). С помощью этой функции можно проверить, где находится курсор. Аналогичная функция WhereY – определяет строку, в которой в данный момент находится курсор (принимает значения от 1 до 25). Условие (wherex<40) означает, что при выводе на экран еще не достигнута 40 позиция в текущей строке.
Program Stroka; Uses crt; { Stroka - имя программы }
procedure Str_Simw; { Str_Simw - имя процедуры }

begin

while wherex<40 do write('$'); { - тело процедуры }

writeln

end;
Begin

clrscr;

Str_Simw; Str_Simw; { - вызов процедуры (два раза)}

Readkey;

End.
З А Д А Н И Я:
1. Набрать и исполнить пример.
2. Взять любую программу суммирования числового ряда и часть программы описать

с помощью процедуры.
3. Применить процедуру Str_Simw для подчеркивания.
Процедуры позволяют избежать повторения фрагментов программ и таким образом сократить размеры программы.

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


ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 18



П Р О Ц Е Д У Р Ы (продолжение)
Переменные, описанные VAR после слова PROGRAM , называют ГЛОБАЛЬНЫМИ.

Глобальные переменные передаются в любую часть программы, в том числе и в процедуры.
Program Stroka; Uses crt;

var i: integer; { i - глобальная переменная }
procedure St_Sim;

begin

for i:=1 to 40 do write('$');

writeln;

end;
Begin

clrscr;

St_Sim; St_Sim;

End.
Переменные , описанные в процедуре, называют ЛОКАЛЬНЫМИ ,так как они используются только в данной процедуре. Доступа к ним из программы нет.
Program Stroka; Uses crt;
procedure St_Sim;

var i: integer; {i - локальная переменная}

begin

for i:=1 to 40 do write('-');

end;
Begin

clrscr;

St_Sim;

Readkey;

End.

Нежелательно, чтобы глобальные и локальные переменные совпадали.
З А Д А Н И Я:

1. Набрать и исполнить данные программы.

2. Решить задачу: Найти сумму чисел ряда 1,2,3,...,60 с использованием процедуры нахождения суммы и процедуры подчеркивания результата. В обеих процедурах использовать локальные переменные. Количество символов в строке задать глобальной переменной.

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

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 19
П Р О Ц Е Д У Р Ы (продолжение)

Часто процедура содержит список параметров.

procedure имя (СПИСОК ПАРАМЕТРОВ);

...

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

результатов работы процедуры с указанием их типов. Параметры, перечисляемые в списке, называют ФОРМАЛЬНЫМИ.

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

Program Stroka; Uses crt;

var m: integer; {m – глобальная переменная}

procedure Str_Sim( n: integer; c: char); { n, c - параметры-значения }

var i:integer; { i - локальная переменная }

begin

for i:=1 to n do write(c); { конструкция печати символов }

writeln;

end;

Begin

clrscr;

Str_Sim(64,'*'); { вызов процедуры с указанием числа звездочек }

writeln; writeln;

write('Сколько символов напечатать? :'); readln(m);

Str_Sim(m,'='); { вызов процедуры с указанием числа знаков '='}

End.
Параметры-значения нельзя использовать для передачи результатов из процедуры в основную программу ! Если возникла такая необходимость, то применяют формальные параметры-переменные ,перед которыми в списке формальных параметров стоит var.

Program Pr1; Uses crt; Program Pr2; Uses crt;

var x: integer; var x: integer;

procedure Izm(y: integer); procedure Izm(var y: integer);

begin begin

y:=1 y:=1

end; end;

Begin Y не передает ре- Begin Все изменения формальных

x:=0; зультат из проце- x:=0; параметров относятся и

Izm(x); дуры в основную Izm(x); к фактическим.

write(x) программу. write(x)

End. End.

Результат: x=0. Результат: x=1.
З А Д А Н И Я:

1. Набрать и исполнить приведенные примеры.

2. Найти сумму чисел ряда 1,2,3,4,... от числа n до числа m. Суммирование оформить процедурой с параметрами. Значения n и m программа должна запрашивать.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 20



Ф У Н К Ц И И
ФУНКЦИЯ - это подпрограмма, результат выполнения которой есть единственное скалярное значение, присваиваемое имени этой функции. Функция - частный случай процедур.
ОТЛИЧИЯ от процедур:

1. В описании указывается тип результата функции.

2. Результат выполнения функции - ОДНО значение.

3. Имени функции обязательно присваивается результат.

4. Результат передается в программу как значение имени этой функции.

5. Функция записывается в выражениях, а не отдельной командой как процедура.
Описание функции аналогично описанию процедуры:
FUNCTION имя ( список формальных параметров ): тип;

[var локальные переменные: тип;]

BEGIN

блок функции

END;

Допускается описание функции без параметров:

FUNCTION имя : тип;

...

Найти сумму чисел ряда 1,2,3,... ,используя функцию.
Program Summa; uses crt;

var n:integer; { n -глобальная переменная }
function Sum(m: integer): integer; { m -параметр-значение функции }

var i,s: integer; { i,s - локальные переменные }

begin

s:=0;

for i:=1 to m do s:=s+i;

Sum:=s {- присваивание имени функции значения }

end;
Begin

clrscr;

write('До какого числа суммировать? :'); readln(n);

write('Сумма чисел ряда S=',Sum(n)) { -вызов функции Sum с парам.}

readkey;

End.
З А Д А Н И Я:
1. Набрать и исполнить программу.

2. Изменить программу так, чтобы была найдена сумма чисел от m до числа n, вводимых с клавиатуры.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 21



Ф У Н К Ц И И (продолжение)
Составить программу вычисления степени числа X с целым показателем n, используя функцию без параметров.
Program Step; uses crt;

var n:integer;

x,y:real;
function St:real;

var i: integer;

begin

y:=1;

for i:=1 to n do y:=y*x;

St:=y

end;
Begin

clrscr;

write('Введите число :'); readln(x);

write('Введите степень :'); readln(n);

if n<0 then begin n:=-n; x:=1/x end;

write('Число ',x,' в степени ',n,' равно ',St)

readkey;

End.
З А Д А Н И Я:
1. Набрать и исполнить программу.
2. Изменить программу, применив функцию с параметрами.
3. Вычислить , при Х=3 ,используя функцию с параметрами.

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 22



ПОВТОРЕНИЕ. ПОДГОТОВКА К КОНТРОЛЬНОЙ РАБОТЕ.
1. Вычислить Y=A+B+C , применив:
а) - процедуру ввода данных;

- процедуру вычисления Y;

- процедуру вывода результата;

- глобальные переменные;
б) - заменить глобальные переменные на формальные;
в) - заменить процедуру вычисления суммы на функцию.
ВТОРОЙ ВАРИАНТ КОНТРОЛЬНОЙ РАБОТЫ

Получить таблицу значений аргумента и функции

на интервале от -5 до 15 с шагом 2

Повторяющуюся часть описать в функции, а получение таблицы описать в процедуре.
Program Primer; Uses crt;
Function R(x:integer):real; {x – формальная переменная}

Begin

R:=sqrt(x+8);

End;
Procedure Tab;

Var x, n, h: integer; {x,n,h – локальные переменные}

Begin

X:=-5; n:=15; h:=2;

While x<=n do

Begin

Writeln(‘x=’,x,’ Y=’,(r(x)+2*(r(x)-2))/(4*(5-r(x))-r(x)) )

X:=x+h;

End;

End;

1   ...   4   5   6   7   8   9   10   11   ...   14


написать администратору сайта