Turbo Pascal

Автор работы: Пользователь скрыл имя, 07 Января 2013 в 09:35, контрольная работа

Описание работы

Получить таблицу значений функции на интервале с шагом 0,1.

Файлы: 1 файл

КР2 Информатика.doc

— 86.00 Кб (Скачать файл)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ТИТУЛЬНЫЙ ЛИСТ

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.




Информация о работе Turbo Pascal