АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Задачи первого класса

Читайте также:
  1. I. ГИМНАСТИКА, ЕЕ ЗАДАЧИ И МЕТОДИЧЕСКИЕ ОСОБЕННОСТИ
  2. I. Ситуационные задачи и тестовые задания.
  3. II. Основные задачи и функции
  4. II. ЦЕЛИ, ЗАДАЧИ И ПРИНЦИПЫ ДЕЯТЕЛЬНОСТИ ВОИ
  5. II. Цель и задачи государственной политики в области развития инновационной системы
  6. III. Цели и задачи социально-экономического развития Республики Карелия на среднесрочную перспективу (2012-2017 годы)
  7. VI. ДАЛЬНЕЙШИЕ ЗАДАЧИ И ПУТИ ИССЛЕДОВАНИЯ
  8. Адаптивная полиномиальная модель первого порядка
  9. Активные интегрированные антенны для усилителей класса F
  10. Аналитические возможности, задачи и основные направления анализа СНС
  11. БАЛАНС КОММЕРЧЕСКОГО БАНКА, ЦЕЛИ И ЗАДАЧИ ЕГО АНАЛИЗА
  12. Билет 1. Предмет истории как науки: цели и задачи ее изучения

Решение задач первого класса сводится к установлению того, как обрабатывается каждый элемент массива или указанные элементы. Затем выбирается подходящая схема перебора элементов, в которую вставляются операторы обработки элементов массива.

Пример 1. Найдите среднее арифметическое элементов массива.

Решение. Задача сводится к отысканию суммы, для чего вводится дополнительная переменная S, в которой накапливается сумма путем прибавления очередного элемента массива, т.е. S:= S + a[i]. При этом можно использовать любую линейную схему перебора с единичным шагом. После нахождения суммы необходимо ее поделить на количество элементов, получим среднее арифметическое.

const nn = 30;

var a: array [1..nn] of integer;

i, n, S: integer;

begin

write (‘задайте количество элементов массива’);

readln (n);

for i:= 1 to n do

read (a[i]);

S:= 0;

for i:= 1 to n do

S:= S + a[i];

write (‘среднее арифметическое равно ’, S/n)

end.

Пример 2. Определите количество четных элементов массива с нечетными порядковыми номерами.

Решение. Сначала надо определить условие, по которому будут отбираться элементы массива. Это должны быть четные элементы (делятся на 2 без остатка) a[i] mod 2 = 0 и имеющие нечетные порядковые номера (номер элемента совпадает с его индексом) i mod 2<>0. Поскольку нас интересуют элементы, удовлетворяющие обоим условиям, соединены эти условия будут оператором and. Выполнение этого условия должно проверяться для всех элементов массива, т.е. используется любая из схем перебора по одному, и в случае выполнения условия счетчик элементов должен увеличиваться на 1.

const nn = 30;

var a: array [1..nn] of integer;

i, n, S: integer; {S - счетчик элементов}

begin

write (‘задайте количество элементов массива’);

readln (n);

for i:= 1 to n do

read (a[i]);

S:= 0;

for i:= 1 to n do

if (a[i] mod 2 = 0) and (i mod 2 <> 0) then S:= S +1;

writeln (‘S= ‘, S)

end.

Пример 3. Найдите максимальный (минимальный) элемент массива.

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

const n = 30;

var a: array [1..n] of integer;

i, max: integer;

begin

for i:= 1 to n do

read (a[i]);

max:= a[1];

for i:= 2 to n do

if a[i] > max then max:= a[i];

writeln (‘максимальный элемент массива равен ’, max)

end.

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

const n = 30;

var a: array [1..n] of integer;

i, imax: integer;

begin

for i:= 1 to n do

read (a[i]);

imax:= 1;

for i:= 2 to n do

if a[i] > a[imax] then imax:= i;

writeln (i:2,‘-ый элемент массива - максимальный, его величина равна ’, a[imax]);

end.

Упражнения.

1. Установите, какую задачу решает приведенный ниже фрагмент программы. Перепишите его с использованием оператора while.

s:= 1; max:= a[1];

for i:= n downto 2 do

if max < a[i]

then begin max:= a[i]; s:= 1 end

else if max = a[i]

then s:= s + 1;

2. В городе N закусочных. Известны расстояния от каждой закусочной до цетра города. Нужно указать пару закусочных, расположенных дальше всего друг от друга, если переходы от закусочной к закусочной осуществляются через центр.

3. Последовательность определяется по следующим правилам: a0 = 9;

ak+1 = 3ak4 + 4ak3 для любого k > 0. Заданы номера элементов этой последовательности i и j. Определите в записи какого элемента входит больше цифр девять.

4. В одномерном массиве целых чисел найдите максимальный среди элементов, являющихся четными, и минимальный среди элементов, кратных А.

5. Автомат, приклеивающий этикетки, работает со светлыми, зелеными и темными бутылками, в которые наливаются светлые и темные жидкости. Темные бутылки с темной жидкостью автомат разбивает. Сколько бутылок из 1997 штук разобьет автомат? Вид бутылки и жидкости в ней задается случайным числом.

6. В массиве хранятся натуральные числа из интервала от 10 до 50, сформированные случайным образом. Выведите его на экран построчно, где каждая строка содержит столько звездочек, каково значение соответствующего элемента массива.

7. В одномерном массиве хранятся случайные натуральные числа от -10 до 37. Напечатайте содержимое соответствующего элемента массива в виде столбца звездочек вверх (в случае положительного элемента) или вниз (в случае отрицательного элемента) от базовой строки. Например, для А = {-2, 3, 2, -3, 4, -2} получим:


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |

Поиск по сайту:



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