Программирование в Турбо Паскале

Тип работы:
Контрольная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Санкт-Петербургский Государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича

ФАКУЛЬТЕТ ВЕЧЕРНЕГО И ЗАОЧНОГО ОБУЧЕНИЯ

КОНТРОЛЬНАЯ РАБОТА № 1, № 2

по дисциплине «ИНФОРМАТИКА»

СОДЕРЖАНИЕ

1. Контрольная работа № 1

Задание № 1

Задание № 2

Задание № 3

2. Контрольные вопросы к заданиям № 1, № 2, № 3

3. Контрольная работа № 2

Задание № 4

4. Контрольные вопросы к заданию № 4

1. КОНТРОЛЬНАЯ РАБОТА № 1

программа идентификатор массив оператор

ЗАДАНИЕ № 1

1. Постановка задачи

Вычислить значение функции

при x < -12

y = при -12 x < 1

при x 1

Рабочий набор исходных данных:

a = 1,5, x = -17,3

2. Таблица идентификаторов

Обозначение в задании

Идентификатор

Назначение

a

a

коэффициент-константа

x

x

переменная, используемая для задания значения аргумента

y

y

переменная, используемая для хранения значения вычисляемой функции

3. Текст программы с комментариями

program exm1;

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

uses CRT;

const

a=1. 5; {описание констант}

var

x, y: real; {описание переменных}

begin

clrscr; {очистка экрана}

write ('введите х = '); {вывод на экран монитора надписи «введите х ="}

readln (x); {считывание данных с клавиатуры}

if x< -12 then {если x < -12 то }

y: =a*sin (abs (x+23))/cos (abs (x+23)); {расчет y}

if (x> =-12) and (x< 1) then

y: =a*(sin (x)+10)/(sin (x)/cos (x)+5);

if x> =1 then

y: =sqrt (abs (x-4));

writeln ('при x =', x: 5:2,' y =', y: 5:2); {вывод на экран полученных x и y}

readln {удержание экрана с результатами, для просмотра}

end.

4. Контрольный расчет

Входные данные

Результаты контрольного расчета для а=1

Результаты, полученные на ЭВМ (проверяются на лабораторных работах)

x

y

x

y

-15

-6,80

-15

-2

1,27

-2

6

1,41

6

ЗАДАНИЕ № 2

1. Постановка задачи

Вычислить значение функции:

Рабочий набор исходных данных:

x=, n=5

2. Таблица идентификаторов

Обозначение в задаче

Идентификатор

Назначение

x

x

исходные данные

y

y

результат решения задачи

p

b

промежуточный результат

i

i

счетчик цикла

n

n

константа, определяющая верхнюю границу изменения счетчика цикла

3. Текст программы с комментариями

program ex1_2;

{Задача на вычисление конечного произведения}

uses CRT;

const x=Pi/4; {описание констант}

n=5;

var

b, p, y: real; {описание переменных}

i: byte;

begin

clrscr;

b: =(x+0. 8)/x; {подготовка к циклу}

p: =1;

for i: =1 to n do {параметр цикла, изменяется от 1 до n}

p: =p*sqrt (b+cos ((x)*i)); {цикл}

y: =4. 2*x+p; {вычисление y}

write ('ответ ');

writeln (' y = ', y: 5:3); {вывод на экран полученных результатов}

readln

end.

4. Контрольный расчет

Ответ y = 6,403.

ЗАДАНИЕ № 3

1. Постановка задачи

Вычислить значение функции:

Рабочий набор исходных данных:

Хнач = 0; Х=0,5; а=1,01; N=10.

2. Таблица идентификаторов

Обозначение в задаче

Идентификатор

Назначение

N

a

Xнач

Х

n

a

xn

dx

исходные данные

x

y

x

y

Результат решения задачи

i

i

Счетчик цикла

3. Текст программы

program ex1_3;

{Задача на вычисление таблицы значений функции}

uses CRT;

const

n=10; a=1. 01; {описание констант}

xn=0; dx=0. 5; line='******************************************';

var

x, y: real; {описание переменных}

i: byte;

begin

clrscr; {очистка экрана}

x: =xn; {подготовка к циклу}

writeln; {напечатает пустую строку}

writeln ('ТАБЛИЦА ЗНАЧЕНИЙ ФУНКЦИЙ');

writeln;

writeln;

writeln (line); {напечатает полоску в виде звездочек}

writeln ('| X | Y |');

writeln (line);

for i: =1 to n do

begin

y: =sqrt (a+2. 8*x)/(sqrt (x)+2. 8+x);

writeln ('! ', x: 5:2,' ! ', y: 5:2,' !');

x: =x+dx;

end;

writeln (line);

readln

end.

4. Контрольный расчет

2. КОНТРОЛЬНЫЕ ВОПРОСЫ К ЗАДАНИЯМ № 1, № 2 И № 3

1. Структура программы в Турбо Паскале.

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

(Заголовок программы)

Program Имя программы,

(Раздел указания используемых модулей)

Uses (Список используемых модулей)

(Раздел описаний)

Label (описание меток)

const (описание констант)

type (описание типов)

var (описание переменных)

procedure

function

(Раздел операторов (Операторный блок))

begin (начало программы)

раздел операторов

end (конец программы)

Заголовок программы необязателен и используется в декоративных целях. Имя программы начинается со слова program и далее содержит буквы, цифры и знаки подчеркивания.

Например: program exm1;

Раздел указания используемых модулей начинается с зарезервированного слова uses. Присутствие в программе предложения uses не обязательно. Оно описывается в случаях, если в программе используются константы, типы, переменные, процедуры или функции, определенные в стандартных модулях

Turbo Pascal, кроме модуля System, или в модулях, созданных пользователем.

Например: uses Crt, Graph;

Предложение uses в каждой отдельной программе может быть описано только однократно и должно располагаться непосредственно после заголовка программы.

Операторы, разделы и описания разделов обязательно заканчиваются точкой с запятой.

Разделы, стоящие в теле программы до BEGIN являются разделами объявлений (деклараций). Порядок следования разделов деклараций может быть любым.

Раздел операторов, стоящий между BEGIN и END, задаёт действие, которое будет выполнять компьютер по обработке данных.

Перед алгоритмом решения задачи (операторный блок) пишется слово BEGIN.

В конце программы пишется слово END и обязательно ставится точка.

2. Что такое идентификатор?

Придуманные программистом имена называют идентификаторами. Для имен идентификаторов есть некоторые ограничения:

ь В именах идентификаторов допускаются только латинские букв, знак подчеркивания и цифры.

ь Идентификатор начинается с буквы, подчеркивание тоже является буквой.

ь Идентификатор может насчитывать до 255 символов, но Паскаль учитывает только первые 32 из них.

ь Не допускается совпадение имени идентификатора с ключевым словом.

Русские буквы и знаки препинания в именах запрещены. Большие и маленькие латинские буквы считаются одинаковым.

Например правильные имена: xn, dx, а, r2, u23, cosmos, next_step.

неправильные имена: 23u, end.

3. Понятие переменной в Турбо Паскале

Переменная может изменяться в ходе выполнения программы. Её объявляют до исполняемых операторов — перед словом BEGIN, применяя до этого ключевое слово VAR. Этим словом открывается секция, в которой можно разместить одно или несколько объявлений переменных. Каждое такое объявление содержит два элемента — имя переменной и её тип, которые разделяются двоеточием. Компилятор резервирует для каждой переменной участок памяти в соответствии с указанным типом, но ничего туда не помещает. Значение переменных определяется уже в процессе выполнения программы. Тип каждой переменной определяет диапазон изменения её возможных значений. В соответствии с этим диапазоном для переменных определенного типа отводится в памяти необходимое количество байтов. Тип определяет также операции, которые можно выполнять над значениями переменных этого типа.

Примеры переменных: var x, y: real;

a: array[1. n] of integer;

z, max: integer;

s: string;

4. Чем переменная отличается от константы?

Константа — неизменная величина, в ходе программы не изменяется, переменная может изменять свои значения в ходе выполнения программы.

Пример константы:

const a = - 1. 3;

5. Найти в программах решенных задач декларативную часть. Для чего нужны разделы описания констант, переменных. Что определяет тип переменной?

Все, что находится от слова USES до первого слова BEGIN, называется декларативной частью. Это раздел описания переменных, констант, типов, меток, процедур, функций.

Из задания № 1 раздел деклараций:

const

a=1. 5; {описание констант}

var

x, y: real; {описание переменных}

Из задания № 2:

const x=Pi/4; {описание констант}

n=5;

var

b, p, y: real; {описание переменных}

i: byte;

Из задания № 3:

const

n=10; a=1. 01; {описание констант}

xn=0; dx=0. 5; line='******************************************';

var

x, y: real; {описание переменных}

i: byte;

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

В разделе описания переменных (VAR) описываются, сколько будет переменных и какого типа данные могут в них храниться.

Каждая переменная относится к некоторому типу данных, который определяет объём занимаемой ею памяти и правила работы с переменной.

Тип переменных — это то, что после двоеточия.

Например:

VAR

x, y: real; {x, y имеют тип вещественный — обычные числа. Компилятор выделит в памяти 6 байт для хранения вещественных значений переменных. И для x, и для y. }

a: array[1. n] of integer; {массив целых чисел, для хранения выделяется 2 байта памяти. }

s: string; {Переменная этого типа может хранить в себе строчку какого-нибудь текста. }

i: byte; {Требуется памяти 1 байт. Диапазон значений от 0 до 255. }

6. Операторы. Оператор IF. Оператор FOR. Оператор присваивания.

Операторы — это команды языка программирования.

Оператор IF.

Существует два варианта условного оператора — полный и неполный.

Полный оператор выражается тремя ключевыми словами: IF — «если», THEN — «то» и ELSE — «иначе», записывается он так.

IF условие THEN оператор 1 ELSE оператор 2

Первый оператор выполняется, если условие верно, а второй — если ложно. Т. е имеем две ветви — положительную и отрицательную.

Неполный условный оператор.

Здесь нет отрицательной ветви. Он записывается так:

IF условие THEN оператор.

Пример неполного оператора:

if x< -12 then (если x < -12 то)

y: =a*sin (abs (x+23))/cos (abs (x+23));

if (x> =-12) and (x< 1) then (если x> =-12 и x<1 то)

y: =a*(sin (x)+10)/(sin (x)/cos (x)+5);

if x> =1 then (если x> =1 то)

y: =sqrt (abs (x-4));

Пример полного оператора:

if x< -12 then (если x < -12 то)

y: =a*sin (abs (x+23))/cos (abs (x+23));

else (иначе)

y: =a*(sin (x)+10)/(sin (x)/cos (x)+5);

Оператор FOR.

Для реализации циклических алгоритмов используется оператор цикла FOR. Оператор цикла FOR применяется в тех случаях, когда заранее известно число повторений цикла. Оператор цикла имеет вид:

FOR N: =начальное значение TO конечное значение DO оператор

Если перевести, то получится:

Для N: =начальное значении до конечное значение выполнить оператор.

N — параметр цикла, являющийся переменной порядкового типа, то есть параметр цикла может быть целого, логического, символьного, перечисляемого типа или типом-диапазоном. Параметр цикла не может быть вещественного типа!

Если необходимо использовать не один, а несколько операторов, их надо заключить в операторные скобки: BEGIN… END. Если начальное

значение счетчика окажется равным конечному, цикл выполнится единожды. А если конечное значение окажется меньше начального, то ни разу!

Пример цикла:

for i: =1 to 5 do (цикл будет пробегать 5 раз, далее выход из цикла)

p: =p*sqrt (b+cos ((x)*i));

Оператор присваивания.

Пара символов «: =» — двоеточие и равно — означают операцию присваивания.

Слева от операции присваивания ставится переменная (она должна быть объявлена в разделе переменных), а справа может стоять константа, переменная, выражение.

Например: b: =(x+0. 8)/x;

p: =1;

a: =S;

7. Процедуры ввода-вывода.

Для вывода информации на экран служит процедура WRITELN с параметром внутри круглых скобок.

Например:

writeln ('введите х = '); (вывод на экран монитора надписи «введите х =») writeln ('! ', x: 5:2,' ! ', y: 5:2,' !'); (вывод на экран монитора значений x, y)

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

Для чтения с клавиатуры служит процедура READLN. В скобках указывается через запятую список фактических параметров этой процедуры.

Например: write ('введите х = ')

readln (x); (Компьютер будет ждать ввода с клавиатуры какого-либо одного конкретного значения)

Также в конце программы, перед слово END ставится слово READLN (чтение пустой строки) необходим для того, чтобы удержать экран для просмотра результатов.

3. КОНТРОЛЬНАЯ РАБОТА № 2

ЗАДАНИЕ № 4

1. Постановка задачи

Дан одномерный массив, состоящий из 12 элементов целого типа. Найти количество положительных элементов, величина которых больше 5.

Дадим имя массиву — а. Из таблицы 4.2 выбираем 12 первых элементов целого типа:

а = [10, -15, 2, -5, 7, -4, -2, 1, 23, -14, -3, 5]

2. Таблица идентификаторов.

Обозначения в задаче

Идентификатор

Назначение

n

n

количество элементов массива

a

a

имя массива

k

имя переменной для хранения количества положительных элементов, величина которых больше 5

i

счетчик цикла, индекс элементов массива

3. Текстпрограмы.

program ex2_1;

{Подсчет кол-ва положительных элементов, величина которых больше 5}

uses CRT;

const n=12; {описание констант — задание количества элементов массива}

type

Arraytype=array[1. n] of integer; {объявление массива}

var

k, i: integer; a: Arraytype; {объявление переменных}

begin

clrscr; {очистка экрана}

k: =0; {задание начального значения количества}

writeln ('Введите с клавиатуры элементы исходного массива');

for i: =1 to n do {цикл, будет пробегать 12 раз}

begin

readln (a[i]); {ввод элементов массива}

if a[i]>5 then {если элемент массива > 5, то}

k: =k+1; {нахождение кол-во элементов больше 5}

end;

writeln ('Количество положительных элементов величина которых больше 5 =', k: 3);

readln {удержание экрана с результатами}

end.

3. Контрольный расчет

/

4. КОНТРОЛЬНЫЕ ВОПРОСЫ К ЗАДАНИЮ № 4

1. Определение массива.

Массив — это фиксированное количество элементов одного типа, объединенных общим именем, причем каждый элемент имеет свой уникальный номер и номера идут подряд.

2. Что такое переменная с индексом?

Каждый элемент массива это переменная с индексом (например, а[i] - i- й элемент массива а; a[5] - пятый элемент массива а). Все элементы одного массива имеют одинаковое имя и различаются только индексами, т. е. своим положением внутри массива (например a[1], a[2], a[3] - соответственно первый, второй и третий элементы массива с именем а). Индекс может быть константой (a[5]), переменной (a[i]), выражением (a[i+3]).

3. Какова связь индексирования элементов массива с параметрами цикла FOR?

Оператор цикла FOR используется для перебора всех элементов массива по их номерам.

Например:

for i: =1 to 3 do

a[i]: =i*2;

При первом прохождении цикла, когда параметр цикла i=1, формируется первый элемент массива a[1] = 1*2. При втором прохождении цикла i = 2, формируется второй элемент массива a[2] = 2*2 и т. д.

4. Способы описания массивов. Какой из изученных вами способов описания массивов может быть использован при передаче массивов в процедуры и функции через список формальных параметров.

1 способ.

type

ArrayType = array [1. 5] of integer;

var

x, y, z: ArrayType;

В разделе TYPE определен один конкретный тип. Имя этого типа ArrayType. Далее в разделе VAR этот тип применен для объявления любого числа (в данном случаи трех — (x, y, z) массивов, которые будут иметь одинаковые индексные границы (в данном случаи от 1 до 5) и один и тот же тип. Здесь целого типа.

2 способ.

var

x: array[1. 5] of integer;

Если перевести, можно прочитать: массив от 1 до 5 целых чисел.

При передаче процедурам и функциям массивов через списки формальных параметров используется только первый способ. Использование второго способа для этих целей запрещено.

5. Использование оператора цикла FOR для ввода-вывода и обработки элементов массива.

Для ввода с клавиатуры:

for i: =1 to n do readln (a[i]);

Для вывода массива, например в файл:

for i: =1 to n do writeln (F, a[i]);

Для обработки (например, для поиска наибольшего элемента массива);

max: =a[i];

for a[i] > max then

max: =a[i];

Ввод массива и вывод возможен только поэлементно, для чего организуется цикл.

ПоказатьСвернуть
Заполнить форму текущей работой