Методические указания к выполнению контрольной работы по дисциплине «Информатика» Новочеркасск 2007
Вид материала | Методические указания |
Содержание3.4. Управляющие структуры языка 3.5. Операторы цикла 3.6. Характерные приемы программирования 3.7. Простейшие способы обработки массивов 4. Варианты заданий |
- Методические указания по выполнению контрольной работы по курсу, 260.49kb.
- Методические указания по выполнению контрольной работы по дисциплине «биржевое дело», 156.97kb.
- Методические указания и задания к выполнению контрольной работы по дисциплине, 246.08kb.
- Методические указания по выполнению контрольной работы №2 по дисциплине Информатика, 278.17kb.
- Методические указания по изучению дисциплины и выполнению контрольной работы Для студентов, 403.35kb.
- Методические указания к выполнению контрольной работы по дисциплине «Материаловедение», 319.29kb.
- Методические указания по выполнению контрольной работы №1 по дисциплине Информатика, 390.61kb.
- Методические указания по выполнению контрольной работы для самостоятельной работы студентов,, 601.04kb.
- Методические указания к изучению дисциплины и выполнению контрольной работы для студентов, 196.81kb.
- Методические указания по выполнению контрольной работы, варианты контрольной работы, 238.53kb.
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
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), М(х2,у2).
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 вычислить среднее арифметическое каждой строки.
0>0>0>