Методические указания к выполнению контрольной работы по дисциплине «Информатика» Новочеркасск 2007

Вид материалаМетодические указания

Содержание


3.4. Управляющие структуры языка
3.5. Операторы цикла
3.6. Характерные приемы программирования
3.7. Простейшие способы обработки массивов
4. Варианты заданий
Подобный материал:
1   2   3   4   5

3.3. Программирование линейных алгоритмов


Для написания простейших программ достаточно рассмотренных выше операторов. Однако является хорошей практикой включение в программу оператора END, при этом никакого сообщения на экран не выводится. Этот оператор завершает выполнение про­граммы.

Наиболее простым видом организации вычислительного процесса является линейный процесс. Программа линейного алгоритма представляет собой последовательность опера­торов, каждый из которых выполняется один раз в порядке его следования.

Такой поря­док называется естественным.

Рассмотрим программу вычисления углов треугольника АВС, заданного длинами сторон а, b, с.

CLS

INPUT "Длины сторон", A,В,С

PI=3.14159

U1=(В2+С2-А2)/(2*В*С)
U2=(А2+C2-В2)/(2*А*С)
UЗ=(В2+А2-С2)/(2*А*В)
DEF FNU(x)=PI/2-ATN(x/SQR(l-x2))

ALF=FNU(U1)*18O/PI

BET=FNU(U2)*180/PI

GAM=FNU(U3)»180/PI

PRINT "Углы треугольника в градусах:"

PRINT USING "###.#"; ALF,BET,GAM

END


3.4. Управляющие структуры языка

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

- оператор безусловного перехода GOTO N ,

где N - метка оператора, которому передается управление;

- оператор условного перехода IF L THEN S .

Действие оператора IF заключается в следующем: если условие L выполняется, то вы­полняются операторы S; если условие L мс выполняется, то и S не выполняется, а выпол­няется следующий за IF оператор.

Рассмотрим, например, программу решения квадратного уравнения

INPUT A,B,C

D=B*B-4*A*C

IF D<0 THEN PRINT "Корней нет"; END

X1=(-B+SQR(D))/(2*A)

X2=(-B-SQR(D))/(2*A)

PRINT X1,X2

END

Условный оператор IF может иметь вид

IF L THEN S ELSE S1

В этом случае оператор S1 будет выполняться, если условие L не выполняется. В резуль­тате в одном операторе, называемом полным условным оператором, указаны все действия, выполняемые при любом знамении выражения.

Например,

IF M< >N THEN GOTO m5 ELSE PRINT "Равенство"

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

Рассмотрим решение следующей задачи. Вывести на печать отрицательные значения функции у=0,5 - sinx при изменении аргумента х от 0 до 1 с шагом 0,1.

х=0

ml:

y=.5-sin(x)

IF y<0 THEN PRINT "x=";x,"y=";y

x=x+0.1

IF x<=l THEN GOTO ml

END


3.5. Операторы цикла

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

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

FOR V = A1 TO A2 STEP A3

операторы

области

цикла

NEXT V

где V - параметр или счетчик цикла;

А1,А2,А3 - выражения определяющие соответствен­но: начальное А1, конечное A2, значения счетчика и шаг изменения параметра цикла A3. Такая структура предписывает выполнить вес операторы, расположенные между опера­торами FOR и NEXT, для всех значений параметра цикла V, удовлетворяющих условию (А2-V)*АЗ>=0.

Количество повторений цикла определяется по формуле

К=[(А2-А1)/А3]+1 ,

где [] - целая часть частного.

Конструкция STEP A3 может быть опущена, если А3=1.

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

FOR x=0 TO I STEP 0.1

y=.5-sin(x)

IF y<0 THEN PRINT "x=";x,"y=";y

NEXT x

END

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

Если заранее неизвестно число прохождений цикла или цикл выполняется с непредска­зуемым условием завершения, то в этом случае удобнее использовать специальный опе­ратор WHILE - WEND, который обеспечивает работу цикла с окончанием по условию.

Структура такого цикла имеет вид

WHILE L

Операторы цикла

WEND

Количество повторений цикла будет зависеть от условия L. Как только условие L не будет выполняться, то управление передается оператору, следующему за оператором WEND.

Например,

x=2.5

WHILE х<=4

у=х2-5*х+6

if y>0 then print using "x=#.# y=#.#";x,y

x=x+0.2

WEND

Разрешается использование циклов в цикле (вложенных циклов). В этом случае внутрен­ний цикл должен полностью находиться в теле внешнего цикла.


3.6. Характерные приемы программирования

Рассмотрим приемы, наиболее часто используемые при решении различных практиче­ских задач. При вычислении суммы вычисляют слагаемые X и накапливают сумму S в цикле, используя оператор S=S+X. Начальное значение суммы, как правило, полагают равным нулю. Рассмотрим программу нахождения длины замкнутой ломаной, заданной координатами вершин.

INPUT N

DIM X(N), Y(N)

FOR i = 1 TO N

INPUT X(i), Y(i)

NEXT i

X(0) = X(N)

Y(0) = Y(N)

S = 0

FOR i =1 TO N

X=SQR((X(i)-X(i-1 )2+((Y(i)-Y(i-1 ))2))

S=S+X

NEXT i

PRINT S

При вычислении произведения перед циклом задают начальное значение произведе­ния, равное Р=1, а внутри цикла накапливают произведение, используя оператор при­сваивания вида Р=Р*Х, где X – сомножитель, Р - промежуточное произведение.

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

Рассмотрим программу для нахождения наибольшего значения функции y=xsin(x+c) при изменении аргумента А ≤ х ≤ В с шагом Н.

INPUT A,B,C,H

YMAX=A*SIN(A+C)

FOR x=A TO В STEP H

y=x*sin(x+c)

IF y>YMAX THEN YMAX=y

NEXT x

PRINT YMAX

END


3.7. Простейшие способы обработки массивов

Обычно ввод элементов массивов осуществляется в цикле:

Например,

DIM A(6)

FOR i=0 TO 5

READ A(i)

NEXT

DATA 1,2,3,4,5,6

или

DIM А(9)

FOR i=0 TO 9

INPUT A(i)

NEXT


Двумерные массивы, как правило, задаются по строкам:

Например,

DIM S(3,2)

FOR i=0 TO 3

FOR j=0 TO 2

READ S(i j)

NEXTj

NEXT i

DATA1,2,3,4,5,6,7,8,9,10,11,12

или

DIM S(3,2)

FOR i=0 TO 3

FOR j=0 TO 2

INPUT S(i,j)

NEXTj:NEXT i


Вывод массивов может осуществляться такими же последовательностями операторов, что и ввод, но вместо оператора READ или INPUT записывается оператор печати PRINT.

Например, вывод на печать (по строкам) двумерного массива.

FOR i=l TO n

FOR j=l TO k

PRINT A(i,j);

NEXT j

PRINT

NEXT i

Решение многих задач сводится к выполнению операций над массивами. Например, пусть в матрице A(n,m) необходимо выполнить перестановку i-й и j-й строк.

Запишем фрагмент программы

FOR k=l TO m

SWAP A(i,k), A(j,k)

NEXT k

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

Поиск минимального элемента матрицы A(N,M) может быть выполнен в следующем фрагменте программы:

Р=А(1,1): k=l: L=l

FOR i=l TO n

FOR j=l TO m

IF P>=A(i j) THEN GOTO ml

P=A(i,j)

k=i; L=j

ml:

NEXT j; NEXT i


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

Каждый вариант контрольной работы содержит 9 вопросов и задач.

Вариант задания соответствует последней цифре шифра зачетной книжки студента. В работе необходимо указать номер варианта и после условия каждого задания дать подробный ответ на постав­ленный вопрос.


Вариант 0

1. Одна точка на экране несет 1 бит информации. Экран имеет по вертикали 200, а по горизонтали 640 точек. Сколько байт информации можно передать на экране?

2. Сколько символов можно закодировать, используя трехбитовое представление ин­формации?

3. Сравнить числа (123)8, и (100110)2.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ

\ 92

5. В каком подкаталоге находятся файлы File.* если известно, что C:\DUB\Fail.* ?

6. Как вызвать на выполнение файл TONY.EXE, если он находится в корневом каталоге диска С: ?

7. Составить программу для определения суммы цифр заданного трехзначного числа.

8. Составить программу решения уравнения ах2+b=0 относительно х (параметры а и b задать самостоятельно). При отсутствии решения или бесчисленном множестве решений должен быть напечатан соответствующий текст.

9. Составить программу для определения делителей заданного числа N.

10. В матрице размером m x n найти сумму элементов j —го столбца и сумму элементов i —ой строки, лежащих в пределах от -1 до 2. Параметры m, n, i, j ввести с помощью оператора ввода INPUT.


Вариант 1

1. Сколько см магнитной ленты будет занимать информация в 10 К б при плотности записи 640 бит/см?

2. Напишите слово, которое содержит 10 байт информации.

3. Сравнить числа (21 )10 и (13)8.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ__ HEX

? 77

5. Что означает запись *.?

6. Запишите имя любого файла, с расширением из трех символов, который принадлежит группе файлов UT?A .f* .

7. Составить программу, в которой для заданного q
8. Составить программу решения неравенства ах+b>0 относительно х (параметры а и b задать самостоятельно).

9. Последовательность задана формулой общего члена хn=n2-5n-6.

Для 1 ≤п20 вывести на печать отрицательные члены и их номера.

10. В матрице размером 10x15 заменить все отрицательные элементы на нули. На печать вывести исходную матрицу и расчетную, снабдив их заголовками: МАТРИЦА ИСХОДНАЯ и МАТРИЦА РАСЧЕТНАЯ.


Вариант 2

1. Скорость работы принтера составляет 320 бол (1бод=1 бит/с). Сколько символов он напечатает за 10 секунд?

2. Сколько бит информации содержится в имени файла VESNA.BAS?

3. Сравнить числа (112)3 и (20)8.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ HEX

# 35

5. Как записать группу файлов с именем DENIS и односимвольным расширением?

6. Файл STIV.exe находится в корневом каталоге подкаталога SET. Укажите полный путь к файлу.

7. Составить программу для вычисления периметра, площади и углов (в градусах) пря­моугольного, треугольника, заданного длинами катетов.

8. Составить программу для проверки принадлежит ли точка А(х,у) отрезку КМ, если К(х1, у1), М(х22).

9. Вывести на экран отрицательные значения функции у=4х(5-3х2) при изменении х от 1 до 2 с шагом 0,1.

10. В матрице размером m x n найти максимальное число и его координаты. Напечатать:

Mакс. элемент = ..., его координаты: I=..., J=... .


Вариант 3

1. На листе напечатан текст, который занял 48 строк (в каждой строке 64 символа). Сколько Кбайт содержит эта информация ?

2. Сколько различных символов можно закодировать, используя четырехбитовое пред­ставление информации?

3. Сравнить числа (17)8 и (220)3.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ HEX

\ 5С

5. Как записать файлы, имя которых начинается па букву S и имеющие расширение .TXT .

6. В каком каталоге зарегистрирован подкаталог DINA, если F:\ALISA\DINA\POLE?

7. Составить программу для вычисления периметра, площади и высот треугольника, заданного длинами сторон.

8. Составить программу решения неравенства ax+b>0 относительно х (параметры а и b задать самостоятельно).

9. Найти десять решений уравнения 5ctg(x-l)=2, выразив углы в градусах.

10. В матрице размером m x n найти минимальное число и его координаты.

Напечатать:

Mин. элемент = ..., его координаты: I = ..., J =... .


Вариант 4

1. За сколько секунд будет передано сообщение, состоящее из 100 символов по каналу связи при скорости 100 бод (1бод = 1 бит/1с)?

2. Символ # имеет двоичный кол 00100011. Сколько бит информации содержит деся­тичный код этого символа?

3. Сравнить числа (111)8, и (1F)16.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN QCT HEX

( 00101000

5. Что означает запись С:\ЕКА\???.*

6. Известно, что из подкаталога VIKA диска D: в корневой каталог диска С: скопирова­ли файл FIL. 1 Укажите полный путь поиска файла FIL. 1.

7. Составить программу для вычисления периметра, площади и высот треугольника, заданного длинами сторон.

8. Составить программу для нахождения номера первого отрицательного члена по­следовательности xn=sin(πn/17) + cos(πn/l2).

9. Вывести координаты (х,у) точек траектории движения тела при 0 ≤t≤ 10, если x=At - В, y=Ct Значения А, В и С задать самостоятельно.

10. В матрице размером m x n найти все числа, лежащие в интервале [a, b] и напечатать эти числа и их координаты.


Вариант 5

1. Сколько символов в строке содержит книга, если на ее странице в 48 строках содер­жится 3К информации?

2. Запишите возможные трехбитовые комбинации. Сколько символов можно закодиро­вать, используя их?

3. Сравнить числа (121)3 и (31)5.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ HEX

% 45

5. В каком подкаталоге находятся файлы ANNA.* если известно, что A:\DINA\22\ ANNA.* ?

6. Как вызвать на выполнение файл TOST.COM, если он находится в каталоге RAB корневого каталога диска Е: ?

7. Составить программу для решения относительно х уравнения (х-а2)(х+b2)=с2.

8. Составить программу для определения числа точек пересечения прямой у=кх+р с окружностью х2 + у2 =R2.

9. Составить таблицу значений функции

х2 -5х, при 0≤х≤2

y= 6х + 7, при х>2

при 0≤ х ≤3 с шагом 0,2.

10. Напечатать таблицу Пифагора в виде матрицы 10 х 10. Каждый элемент матрицы в таблице Пифагора вычисляется по формуле а = i*j.


Вариант 6

1. Сколько сантиметров магнитной ленты будет занимать информация в 1ОК при плотности за­писи 640 бит/см?

2. Напишите слово, которое содержит 16 бит информации.

3. Сравнить числа (25)10 и (23)8.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ HEX

< 60

5. Что означает запись A:\DENIS.BAS.

6. Запишите имя любого файла, с трехсимвольным расширением, который принадлежит группе файлов UT?A.f* .

7. Треугольник задан координатами вершин. Составить программу для нахождения его площади и расстояния от центра тяжести до вершин.

8. Составить программу для решения уравнения (х-а)(х-b)=с.

9. Последовательность задана формулой общего члена Xn=5n2-4n-l. Определить (из первых двадцати) члены последовательности, являющиеся нечетными числами.

10. Вычислить и напечатать вектор S, компоненты которого являются суммами элементов четных строк матрицы m x n.


Вариант 7

1. На листе напечатан текст, который занял 32 строки (в каждой строке 32 символа). Сколько Кбайт содержит эта информация?

2. Сколько бит информации содержит выражение (х+у)(х-у)?

3. Сравнить числа (1111)2 и (27)8.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ HEX

/ 2F

5. Как записать файлы с расширением .ТХТ, имя которых состоит из двух символов.

6. Указать имя родительского каталога для подкаталога DINA, если F:\ALISA\DINA\POLE?

7. Окружность x2+y2=R2 пересекается прямой у=х в точках М и N. Точку K(R,0) соеди­нили с точками М и N. Составить программу для нахождения периметра ∆MNK .

8. Составить программу для решения уравнения (х-а)(х-b)=с.

9. Вывести на экран положительные значения функции y=8sin(x/2) при изменении 2≤х≤10 с шагом 0,5.

10. Вычислить и напечатать вектор S, компоненты которого являются суммами элементов четных строк матрицы m x n.


Вариант 8

1. Сколько символов будет передано за 8 секунд по каналу связи при скорости 100 бод (1бод= 1бит/1с)?

2. Символ % имеет десятичный код 37. Сколько бит информации содержит восьмерич­ный код этого символа?

3. Сравнить числа (405)8, и (1101001 )2.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ НИХ

* 52

5. Что означает запись B:\DOM\A??.* ?

6. Известно, что из подкаталога VOSTOK диска А: в корневой каталог диска Е: скопи­ровали файл NEW.DOC. Укажите полный путь поиска файла NEW.DOC .

7. Составить программу для определения угла (в градусах) между диагоналями пря­моугольника, заданного длинами сторон.

8. Составить программу для решения уравнения (х-а)(х-b)=с.

9. Вывести на печать значения функции z=(l +ctg2x)2, удовлетворяющие условию z>l при изменении -1 ≤x≤1 с шагом 0,2.

10. Вычислить и напечатать вектор S, компоненты которого являются произведениями элементов нечетных столбцов матрицы m x n.


Вариант 9

1. Сколько информации в Кбайтах записано на 128 см магнитной ленты при плотности записи 640 бит/см?

2. Сколько бит информации содержит запись 1.09.2000?

3. Сравнить числа (56)8 и (1110)2.

4. Заполнить строку таблицы кодов ASCII

Символ DEC BIN ОСТ HEX

> 111110

5. Что означает запись A:\VERA\M*.?

6. В корневом каталоге диска С: зарегистрированы 10 файлов и десять подкаталогов, каждый из которых содержит по 10 файлов. Сколько всего файлов на диске С: ?

7. Составить программу для определения высоты треугольника, если его площадь равна S, а основание больше высоты на величину b.

8. Составить программу для решения уравнения (х-а)(х-b)=с.

9. Последовательность задана формулой общего члена Хn=5n2-4n-1. Определить (из первых двадцати) члены последовательности, которые при делении на 5 дают в остатке 2.

10. Для матрицы размером m x n вычислить среднее арифметическое каждой строки.