Автор работы: Пользователь скрыл имя, 07 Января 2013 в 09:35, контрольная работа
Получить таблицу значений функции на интервале с шагом 0,1.
ТИТУЛЬНЫЙ ЛИСТ
TURBO PASCAL
Задание 1
Получить таблицу значений функции на интервале с шагом 0,1.
РЕШЕНИЕ.
Для получения значений заданной функции на заданном интервале организуем цикл с постусловием. Блок-схема алгоритма представлена ниже.
Рис. 1. Блок-схема алгоритма.
Приведем ниже текст программы, выполняющей данный алгоритм.
PROGRAM z1;
VAR x, y: Real; {Объявление переменных}
Begin {Начало программы}
x:=-pi/2; {Начальное значение числа х}
repeat {Цикл с постусловием}
y:=sin(x)+cos(x); {Вычисление функции}
x:=x+0.1; {Вычисление следующего значения х}
writeln('е=',x:5:3,' y=',y:5:3);{Вывод результатов}
until x>pi/2; {Постусловие цикла}
end. {Конец программы}
Задание 4
В данном массиве чисел , , …, найти наименьшее среди положительных чисел.
РЕШЕНИЕ.
Для решения данной задачи организуем цикл for, в котором будем проверять знак числа и, если оно положительное, то проверять на минимальное значение. Блок-схема алгоритма представлена ниже.
Рис. 2. Блок-схема алгоритма.
Приведем ниже текст программы, выполняющей данный алгоритм.
PROGRAM z4;
Var i: integer;
x: Array[0..17] of Real; {Объявление массива}
begin
x[0]:=1.7e38; {Наибольшее значение типа real}
for i:=1 to 17 do begin
write('Введите х[',i,']=');
readln(x[i]); {Ввод i-го значения массива x}
if x[i]>0 then {Проверка знака}
if x[i]<x[0] then x[0]:=x[i]; {Проверка минимального
значения}
end;
if x[0]<1.7e38 then writeln('Наименьшее положительное значение массива х равно ',x[0])
else writeln('Положительных
end.
Задание 5
Дана матрица . Поменять местами 2-ю и 4-ю строки.
РЕШЕНИЕ.
Для выполнения данного задания при вводе исходных данных необходимо организовать два вложенных цикла: один для перебора строк, другой для перебора столбцов.
Текст программы, выполняющей задание 5, представлен ниже.
PROGRAM Z5;
var fi, fo: text; {Объявление текстовых файлов}
name: string; {Объявление строковой переменной}
x: real; {Объявление переменной для обмена ячеек массива}
i, j: integer; {Объявление целых переменных для циклов}
A: Array[1..5,1..5] of real; {Объявление массива данных}
begin
write('Введите имя файла данных: ');
readln(name);
assign(fi,name); {Установление связи м/у файловой переменной
и именем файла}
reset(fi); {Открытие файла для чтения}
for i:=1 to 5 do
for j:=1 to 5 do read(fi,A[i,j]); {Поэлементное чтение}
close(fi); {Закрытие файла}
for j:=1 to 5 do begin
x:=A[2,j]; A[2,j]:=A[4,j]; A[4,j]:=x
end;
write('Введите имя выходного файла: ');
readln(name);
assign(fo,name);
rewrite(fo); {Открытие файла для записи}
for i:=1 to 5 do
for j:=1 to 5 do write(fo,A[i,j]:6:2); {Поэлементный вывод}
close(fo) {Закрытие файла}
end.
Задание 6
Вычислить .
РЕШЕНИЕ.
Для выполнения данного задания будем использовать функцию pro(a,n), в которую передаем массив с данными и его длину. Функция выполняет перемножение элементов полученного массива.
Блок-схема данного алгоритма проста, поэтому не приводится.
Текст программы приведен ниже.
PROGRAM Z6;
var x: Array[1..10] of Integer; {Объявление }
y: Array[1..15] of Integer; {массивов }
i: integer; {Объявление }
z: longint; {переменых }
{Объявление функции}
function pro(a: Array of Integer; n: integer): longint;
var j: integer; {Объявление внутренних}
p: longint; {переменных }
begin
p:=a[0]; {Начальное значение произведения}
for j:=1 to n-1 do p:=p*a[j]; {Вычисление произведения}
pro:=p; {Присваивания значения функции}
end;
begin
writeln('Введите массив х.');
for i:=1 to 10 do begin
write('x[',i,']=');
readln(x[i]) {Ввод в цикле массива х}
end;
writeln('Введите массив y.');
for i:=1 to 15 do begin
write('y[',i,']=');
readln(y[i]) {Ввод в цикле массива у}
end;
z:=pro(x,10)+pro(y,15); {Вычисление Z}
write('Z=',z); {Вывод значения Z}
end.