Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Алгоритм

Всякому вводимому с клавиатуры числу должен предшествовать запрос на дисплее: что вводить и в какой форме. Как и любое значение, вводимое пользователем с клавиатуры, количество чисел (N) должно контролироваться на допустимость введенной величины.

Если введено недопустимое значение, требуется выполнить два действия: сообщить об этом и вернуться на запрос нового значения N. Возврат назад возможен двумя способами: командой перехода на метку, поставленную перед оператором запроса или оператором итеративного цикла, причем цикла с "постусловием", так как один раз цикл должен выполниться обязательно.

В данном случае используем первый способ, и потому в программе появляется еще один объект – метка. Дадим ей имя vvod.

Кроме того, дадим имя нашей программе, например laborator_N_3. В результате в таблице имен добавится две строки:

 

Таблица 14. Окончание таблицы идентификаторов

Имя Тип Р-р, байт Назначение
laborator_N_3 Имя программы - Поиск номера определенного числа
vvod Метка - Возврат по ошибке ввода

Раздел поиска номера обычно включает подготовку и цикл поиска. Так как количество чисел известно, используется арифметический цикл. В тело цикла входит получение очередного числа и, если нужно, запоминание его номера. Если встретится хотя бы одно число, удовлетворяющее условию превышения значения 10.5, номер будет найден, иначе нужно иметь признак, что такого числа не встретилось. В качестве такого признака можно использовать переменную Num, в которую перед циклом поиска заносится значение, невозможное для номера числа: например, –1. Если после цикла Num останется равным –1, следовательно, искомых чисел не встретилось.

Таким образом, раздел поиска включает присваивание начального значения переменной Num и цикл, тело которого содержит запрос ввода очередного числа, прием и занесение его в переменную для текущего числа A; проверку, что A >10.5, и если так, запоминание текущего номера в переменной Num. Цикл поиска нужно вести до конца, так как нас интересует последнее число, удовлетворяющее условию выбора.

По окончании раздела поиска, в разделе вывода результатов, печатается найденный номер Num, если он не равен –1, иначе выдается сообщение об отсутствии чисел, удовлетворяющих условию задачи. Построение алгоритма здесь приведено очень подробно, чтобы пояснить весь ход рассуждений. В последующих работах примеры построения алгоритмов будут даваться в укрупненном виде – т.е. только основные идеи. Для разработки алгоритма стоит обратиться к материалам лекции по структурному программированию.

 

Рисунок 6. Алгоритм 31-го варианта

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

Получим следующую программу на Паскале.

PROGRAM laborator_N_3;

{ Программа Лабораторной работы N 3

Вариант N 31.

гр. Я-007, ст. Умненькая И.Я. }

VAR N,Num,i:integer;

A:real;

LABEL vvod;

BEGIN { Выполняемый блок.

Первый раздел - ввод данных }

vvod: writeln('Сколько будет чисел?');

readln(N);

if N < 1 then

begin

writeln('Нельзя рассматривать меньше 1 числа');

goto vvod;

end;

{ Основной раздел - поиск номера }

Num:= -1; {задание признака отсутствия подходящих чисел}

for i:=1 to N do

begin

writeln('Введите очередное число');

readln(A);

if A > 10.5 then { если число удовлетворяет

условию задачи }

Num:=i; { запоминаем его номер }

end;

{ Раздел вывода результатов поиска }

if Num=-1 then writeln('Подходящих чисел не было')

else

writeln('Номер последнего числа,>10.5 равен ',

Num);

END.


Варианты заданий

Таблица 15. Варианты заданий лабораторной работы № 3

№ вар. Задание Остановить обработку при… Тип обраб. данных
  Вычисление произведения последовательно вводимых чисел …превышении абсолютной величины произведения 1000.0, или при вводе числа 0 Веществ.
  Вычисление суммы только четных чисел из последовательно вводимых чисел …вводе заказанного количества чисел Целые
  Нахождение номера минимального значения в последовательности вводимых чисел …вводе признака конца – предварительно введенного пользователем числа Целые
  Вычисление суммы только положительных чисел изпоследовательно вводимых чисел …превышениисуммы 100.0 Веществ.
  Нахождение максимального значения в последовательности вводимых чисел. При поиске пропускать числа из диапазона от 10.1 до 50.1. …вводе заказанного количества чисел Веществ.
  Вычисление суммы последовательно вводимых чисел …вводе признака конца – значения из заранее выбранного пользователем диапазона Веществ.
  Нахождение минимального значения среди последовательности вводимых чисел. Сам признак конца при определении минимума не учитывать. …вводе признака конца – предварительно введенного пользователем числа из диапазона -10..5 Целые
  Вычисление произведения последовательно вводимых чисел заданного количества …вводе заказанного количества чисел – не меньше 5 но и не более 10 Веществ.
  Нахождение минимального значения из чисел, кратных трем, среди последовательности вводимых чисел. …вводе заказанного количества чисел Целые
  Вычисление суммы последовательно вводимых чисел …превышении абсолютной величины суммы 100.1 Веществ.
  Нахождение максимального из последовательно вводимых чисел …вводе признака конца – предварительно выбранного пользователем числа Целые беззнаковые
  Вычисление произведения последовательно вводимых чисел …вводе признака конца – числа из диапазона от -5 до 5 (включительно) Целые
  Нахождение номера максимального значения, кратного пяти, в последовательности вводимых чисел …вводе признака конца – предварительно выбранного пользователем числа Целые
  Вычисление факториала вводимого числа. Если результат не помещается в 4 байта, программа должна сообщать об этом Факториалом целого числа N (обозначается N!) называется произведение всех целых чисел от 1 до N. По определению, 0!=1 Длинные целые (4 байта)
  Вычисление среднеарифметического тех из последовательно вводимых чисел, которые попадают в диапазон от 2.0 до 5.0 включительно. …вводе заказанного количества чисел Веществ.
  Нахождение номера максимального отрицательного значения в последовательности произвольных вводимых чисел …вводе признака конца – предварительно выбранного пользователем числа Веществ.
  Вычисление произведения только отрицательных из последовательно вводимых произвольных чисел …вводе заказанного количества чисел Веществ.
  Нахождение номера наименьшего положительного числа в последовательности произвольных чисел, вводимых с клавиатуры …вводе заказанного количества чисел Веществ.
  Вычисление среднеарифметического последовательно вводимых чисел …вводе третьего отрицательного значения, которое рассматривать как признака конца, а не число. Веществ.
  Нахождение максимального отрицательного значения в последовательности вводимых произвольных (как положительных, так и отрицательных) чисел …вводе заказанного количества чисел Целые
  Вычисление среднего значения только положительных элементов среди вводимых произвольных чисел …вводе заказанного количества чисел Веществ.
  Нахождение разности номеров первого и последнего отрицательных чисел в последовательности водимых чисел …вводе заказанного количества чисел Целые
  Вычисление среднеарифметического только отрицательных чисел среди произвольных вводимых чисел …вводе признака конца (выбранного пользователем произвольного числа). Веществ.
  Нахождение разности максимального и минимального значений в последовательности вводимых чисел …вводе заказанного количества чисел Целые
  Вычисление суммы только отрицательных чисел, абсолютная величина которых превышает 8.5, из последовательно вводимых произвольных чисел …вводе заказанного количества чисел Веществ.
  Нахождение минимального значения среди последовательности вводимых чисел, из которых рассматриваются только четные …вводе заказанного количества чисел Целые
  Вычисление отношения суммы всех положительных чисел к сумме всех отрицательных в последовательности вводимых чисел …вводе заказанного количества чисел Веществ.
  Нахождение разности номеров максимального и минимального значений в последовательности вводимых чисел …вводе заказанного количества чисел Веществ.
  Вычисление среднеарифметического значения только отрицательных элементов после первого 0 среди вводимых произвольных вещественных чисел …вводе заказанного количества чисел Веществ
  Вычисление отношения суммы всех положительных чисел к сумме всех чисел в последовательности вводимых чисел …вводе признака конца – числа 0 Веществ.
  Нахождение номера последнего числа, превышающего значение 10.5 в последовательности вводимых произвольных чисел …вводе заказанного количества чисел Веществ.

 

 




Поделиться с друзьями:


Дата добавления: 2017-02-01; Просмотров: 134; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.