Data «Иванов», «Вова», 160, 85, «муж»

Data «Петрова», «Катя», 167, 67, «жен»

Data «Сидоров», «Миша», 180, 80, «муж»

Data «», «», 0, 0, «»

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

Задача 2. «Экономическая».

Составить алгоритм и программу определения общей стоимости промышленных товаров по данным из таблицы:

товар тип цена кол-во
ананасы прод
утюги пром
сахар прод

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

Сценарий

Data «Иванов», «Вова», 160, 85, «муж» - student2.ru

промышленные товары

       
  Data «Иванов», «Вова», 160, 85, «муж» - student2.ru   Data «Иванов», «Вова», 160, 85, «муж» - student2.ru

отсутствуют

           
  Data «Иванов», «Вова», 160, 85, «муж» - student2.ru   Data «Иванов», «Вова», 160, 85, «муж» - student2.ru   Data «Иванов», «Вова», 160, 85, «муж» - student2.ru
 

<товар> <цена> <кол> <стоим> *

… … …

 
  Data «Иванов», «Вова», 160, 85, «муж» - student2.ru

общая стоимость = <sum>

Программа Алгоритм

' стоимость промтоваров ' алг «стоимость промтоваров»

сls ' нач

? «промтовары:» ' вывод («промтовары:»)

n = 0: sum = 0 ' п = 0: sum = 0

do ' цикл

read tv$, tp$, сn, kl ' ввод tv$, tp$, сn, kl

if tv$ = «» then exit do ' если tv$ = «» то выход

if tp$ = «пром» then ' если tp$ = «пром» то

n = n + 1 ' n =n + 1

st = cn*kl ' st = cn *kl

? tv$, en; kl; st ' вывод (tv$, en, kl, st)

sum = sum + st ' sum = sum + st

end if ' кесли

loop ' кцикл

if n = 0 then ' если n = 0 то

? «отсутствуют» ' вывод («отсутствуют»)

else ' иначе

? «общая cтoимocть=»,sum ' вывод(«общая стоимость=», sum)

end if ' кесли

end ' кон

Data «сахар», «прод», 6000, 20

Data «утюги», «пром», 60000, 3

Data «книги», «пром», 4000, 30

Data «», «», 0, 0

Рассмотрим в качестве иллюстрациипримеры решения экзаменаци­онных задач в МЭСИ - Московском государственном университете экономики, статистики и информатики. Этот университет одним из первых в 1991 году ввел вступительные экзамены по информатике и стал лидером в дистанционном образовании среди государственных вузов Российской Федерации.

Заданиена экзаменах в МЭСИ состоит из пяти задач. Первая задача по системам счисления. Вторая задача - на алгебру логики. Третья задача - тест или анализ блок-схемы. Четвертая и пятая задача - задача на составление алгоритмов и программ.

Первые три задачи в экзаменационных билетах МЭСИ по слож­ности оцениваются на два балла, а четвертая и пятая задача - на четыре и пять баллов. Положительную оценку на экзамене получает та работа, в которой набрано не менее 8 баллов.

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

В виду указанной особенности вступительных экзаменов по ин­форматике в МЭСИ разберем примеры решения задач на составле­ние программ, используя для описания алгоритмов псевдокод, а не блок-схемы, как это делается в учебниках МЭСИ.

Задача 1. Написать программу на любом языке программирова­ния согласно следующему условию.

Дана целочисленная матрица А размера M´N, где M,N - задан­ные натуральные числа. Найти количество столбцов матрицы, со­держащих одни нулевые элементы.

Пример матрицы:

Data «Иванов», «Вова», 160, 85, «муж» - student2.ru

Для представления матрицы в программе на языке Бейсик можно использовать операторы data, в первой строке которых указывается размерность матрицы:

Data 5

Data 1, 0, 1, 0, 0

Data 0, 1, 0, 0, 0

Data 0, 0, 1, 0, 0

Data 0, 1, 0, 0, 0

Data 0, 0, 0, 0, 0

Для вывода исходных данных и результатов их обработки можно воспользоваться следующим сценарием:

Data «Иванов», «Вова», 160, 85, «муж» - student2.ru

Матрица А<n><n>:

11> ... <a1n>

… … …

<anl> … <ann>

Число нулей в столбцах:

<d1> ... <dn>

Решением поставленной задачи на ЭВМ можно получить с помо­щью следующего алгоритма и программа на языке Бейсик. Обратите внимание в программе используются массивы переменной длины, которая определяется при вводе размеров матрицы А:

' подсчет нулевых столбцов ' алг «подсчет нулевых столбцов»

' в квадратной матрице Ann ' нач

read n ' чтение(п)

dim A(n,n), D(n) ' массивы А(1:п,1:п), D(1:n)

print «Матрица A»;n;n;«:» ' вывод («Матрица А»;п;п; «:»)

for k = 1 to n ' от k = 1 до п цикл

for 1 =1 to n ' от l =1 до п цикл

read A(k,l) ' чтение A(k,l)

print A(k,l) ' вывод A(k,l)

next 1 ' кцикл

next k ' кцикл

for k = 1 to n ' om k= 1 до п цикл

D(k) = 0 ' D(k) = 0

for 1 = 1 to n ' от l=1 до п цикл

if A(k, l) = 0 then ' если A(k, l) = 0 то

D(k) = D(k) + 1 ' D(k) = D(k) + 1

end if ' кесли

next 1 ' кцикл

print D(k); ' вывод D(k);

next k ' кцикл

end ' кон

Задача 2. Дана строка символов. Распечатать все слова нечетной длины, отличные от второго слова.

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

Пример строки

Наши рекомендации