Определите что выведет этот фрагмент программы для последнего рассмотренного массива

Определите,что будет выведено в результате следующей программы : program a8; var i, s, sr: integer; const a: array [1..6]

В цикле for в каждом шаге к переменной s будет добавляться значение элемента из массива, номер которого совпадает со значением переменной i. В конце цикла будет получена сумма s шести элементов массива. s = 1 + 7 + 3 + 6 + 0 + 10 = 27, После в переменную sr будет записано одна шестая полученной суммы, то есть среднее значение элементов массива a(1, 7, 3, 6, 0, 10):

Чтобы программа работала, придется изменить тип переменной sr с integer на real.

Ответ. Будет выведено на экран: sr = 4.5

Как добавить хороший ответ?
Что необходимо делать:

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

Что делать не стоит:

  • Списывать или копировать что-либо. Высоко ценятся ваши личные, уникальные ответы;
  • Писать не по сути. «Я не знаю». «Думай сам». «Это же так просто» — подобные выражения не приносят пользы;
  • Писать ответ ПРОПИСНЫМИ БУКВАМИ;
  • Материться. Это невежливо и неэтично по отношению к другим пользователям.

Пример вопроса
Русский язык
7 минут назад
Какой синоним к слову «Мореплаватель»?
Пожаловаться

ВЫВОД МАССИВА В ОБРАТНОМ ПОРЯДКЕ C# | РАБОТА С МАССИВАМИ | СИ ШАРП УРОКИ | ДОМАШНИЕ ЗАДАНИЯ # 7

Хороший ответ
Вася Иванов

Мореплаватель — имя существительное, употребляется в мужском роде. К нему может быть несколько синонимов.
1. Моряк. Старый моряк смотрел вдаль, думая о предстоящем опасном путешествии;
2. Аргонавт. На аргонавте были старые потертые штаны, а его рубашка пропиталась запахом моря и соли;
3. Мореход. Опытный мореход знал, что на этом месте погибло уже много кораблей, ведь под водой скрывались острые скалы;
4. Морской волк. Старый морской волк был рад, ведь ему предстояло отчалить в долгое плавание.

Источник: uchi.ru

Решение задач программирования на условном языке или с помощью блок-схем.

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

Рассмотрим несколько примеров:

Задан одномерный массив X1, X2, ,XN . Что определяет фрагмент алгоритма?

Задачи с массивами | Pascal | Сумма и поиск элементов

Фрагмент алгоритма программы будет выполняться последовательно в следующем порядке:

1. R=1 – операция присваивания, заносит в переменную R число 1.

2. i=2 — операция присваивания, заносит в переменную i число 2.

4. Следующим действием фрагмента алгоритма будет проверка значения элемента массива X2 на условие [

5. R =R* X2 — в этом действии исходное значение R=1 будет умножено на значение элемента X2 и записано в переменную R.

6. i=i+2 -следующим действием будет изменение индекса массива на [+2], т.е. i=4. После переходим (возвращаемся на пункт 3) на проверку условия проверки индекса массива на наличие такого номера элемента в массиве. Если такой номер элемента есть, программа будет выполняться по кругу (в цикле) пункты 4, 5, 6, 7, пока не закончатся чётные элементы массива. Как только чётные элементы массива закончатся работа программы прекратиться.

В результате работы этого фрагмента алгоритма получим произведение чётных элементов массива X(i)c отрицательными значениями

Задан двумерный массив А

После выполнения фрагмента алгоритма переменная В примет значение?

нц для I от 1 до 2

нц для J от 1 до 2

Всё

· нц для I от 1 до 2 –это организация цикла (т.е. повторения части программы от слова нц (начало цикла) до слова кц- конец цикла) связанного с именно с этим началом цикла. Как правило, они выделяются по уровням отступа от левой границы абзаца, или же нужно просто искать по логике открытие и закрытие циклов; кц всегда закрывает ближайшее к нему нц, стоящее выше.

· переменная I и J – это переменные, управляющие циклом, в которые, в нашем случае, при первом выполнении цикла заносится значение 1 (I от 1 до 2), а при каждом новом проходе цикла значение переменной увеличивается на 1 (если не задано другое условие), и так до тех пор, пока значение переменной не примет конечное значение – в нашем случае – 2. Т.о. в данной записи цикл по переменной I выполнится 2 раза: при первом проходе I=1 и при втором I=2. После этого цикл закончиться, и программа будет выполняться дальше.

Иначе

Всё

элемент программы – условие состоит из нескольких элементов:

̶ собственно условие если, в котором записывается логическое выражение, т.е. проверяется какое-либо равенство или неравенство.

Читайте также:
Пастила это что такое программа

̶ следующий элемент условия то – действие, которое будет выполнено, если записанное выше условие верно (выполняется)

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

̶ элемент всё – завершение условия.

Теперь рассмотрим, как будет работать (выполняться) фрагмент приведённой выше программы:

1. нц для I от 1 до 2 – этой записью (строкой) организован цикл по переменной I, которая при первом проходе (выполнении) цикла принимает значение 1, цикл будет работать 2 раза, так как окончанием цикла является 2, или I=2

2. нц для J от 1 до 2 — этой записью организован ещё один, аналогичный предыдущему, цикл по переменной J, принимающей такие же значения (1 и 2). Циклы вложенные, это значит, что внутри первого цикла будет выполняться второй цикл. Аналогично, при первом проходе (выполнении) второго цикла J=1, а при втором J=2.

3. Третьей строкой фрагмента программы проверяется условие если А(I,J)I,J, т.е. А1,1 (так как I=1 и J=1). Значение элемента массива А1,1=6 , а В=10, т.е. условие будет истинным (т.е. выполняется, ведь 6<10).

4. Следующей строкой фрагмента программы выполняется действие то В= А(I,J) (или операция присваивания), но только в том случае, если условие, записанное в предыдущей строке, будет истинным, в противном случае эта строка выполняться не будет (игнорируется), а программа сразу переходит (перескакивает) на следующую строку. Так как в нашем случае условие выполняется, то и данная строка выполниться, т.е. в переменную В будет записано значение элемента массива А1,1 =6, таким образом В тоже будет равно 6 (В=6).

5. Следующей строкой программы записано окончание условия всё.

6. Следующей строкой программы записано окончание второго цикла по J — кц .

7. Следующей строкой программы записано окончание первого цикла по I — кц .

Теперь рассмотрим работу всего фрагмента программы полностью, и определим значения, которые примут переменные, описанные в этом фрагменте.

На этом работа программы будет закончена. Значение переменной В=6, т.е. будет найден самый маленький элемент массива.

В результате выполнения фрагмента блок-схемы алгоритма значения переменных X и Y примут значения?

1. Первым действием фрагмента алгоритма будет операция присваивания Х=0, т.е. в переменную с именем Х будет записано значение 0.

2. Вторым действием фрагмента алгоритма будет также операция присваивания Y=0, т.е. в переменную с именем Y будет записано значение 0.

3. Третьим действием фрагмента алгоритма будет проверка условия X>=Y. Если условие будет выполнено, т.е. значение, записанное в переменной Х, будет больше или равно значению, записанному в переменной Y, то в этом случае произойдёт переход к следующему действию. Если условие не выполниться, то будут выведены значения, записанные в переменных X и Y, и работа программы будет завершена.

5. Пятым действием будет выполнено сложение значения записанного в переменной Х и 1 и результат будет записан в переменную Х (Х=Х+1). Т.о. значение переменной Х будет увеличено на 1.

6. Шестым действием будет расчёт значения Y = X*X/2, т.е. в переменную Y будет записано значение Х, умноженное на это же значение и делёное на 2.

7. Последним действием будет переход (возврат) программы с новыми (рассчитанными в пунктах 5 и 6) значениями Х и Y к третьему действию (пункту) фрагмента алгоритма. Т.е. будет выполнен фрагмент алгоритма с пункта 3 повторно. И так будет происходить до тех пор, пока условия в пункте 3 и 4 будут выполняться (истинными). Как только условие в пункте 3 или 4 станет ложным, то будут выведены значения, записанные в переменных X и Y, и работа программы будет завершена.

Теперь, зная схему решения алгоритма, решим его с имеющимися у нас исходными значениями Х=0 и Y=0.

При первом проходе:

3. X>=Y или 0=0 → условие выполняется;

5. Х=Х+1 или X=0+1=1, т.е. Х=1;

6. Y=X*X/2 или Y=1*1/2, т.е. У=0,5

7. Возврат к пункту 3

3. X>=Y или 1>0,5 → условие выполняется;

5. Х=Х+1 или X=1+1=2, т.е. Х=2;

6. Y=X*X/2 – Y=2*2/2, т.е. У=2

7. Возврат к пункту 3

3. X>=Y или 2=2 → условие выполняется;

5. Х=Х+1 или X=2+1=3, т.е. Х=3;

6. Y=X*X/2 или Y=3*3/2, т.е. У=4,5

7. Возврат к пункту 3

4. Вывод значений Х=3 и Y=4,5 и завершение программы

Если элементы массива D[1…5] равны соответственно 4,1,5,3,2, то значение выражения D[D[4]]-D[D[5]] равно :

1. В квадратных скобках записывается индекс (номер) элемента массива, под каждым номером элемента массива записываются различные значения. Таким образом, получаем:

2. Подставим найденные значения D[4] и D[5] в формулу:

3. Теперь подставим в формулу D[3]-D[2] значения элементов массива 5-1=4

Примеры для повторения №5:

5.1. Укажите пропущенный фрагмент в алгоритме, определяющем количество чётных элементов в массиве А[1:N]. Операторы: DIV – деление нацело, MOD – остаток от деления.

нц дляJот 1 доN

если __________

Всё

5.2. Дан фрагмент алгоритма, в котором обрабатывается массив А:(2,12,0,-3,0). Укажите значение переменной Y после окончания работы фрагмента алгоритма.

нцдля Кот 1 до 5

Всё

Укажите значение Y:

Читайте также:
Программа spss это что

5.3. В результате выполнения фрагмента алгоритма значение переменной b будет равно?

5.4. Дана блок-схема алгоритма

Определить результат выполнения алгоритма при определённых значениях исходных данных: A=7; B=8; C=9

Источник: poisk-ru.ru

Обработка массивов.

Современные компьютеры работают с огромными массивами данных. При этом размер программы не зависит от размера массива: можно написать очень короткую программу, которая обрабатывает миллиарды чисел.

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

Вспомните и запишите в тетрадь, как:

• объявить целочисленный массив из N элементов;
• заполнить массив нулями;
• заполнить массив натуральными числами от 1 до N;
• заполнить массив случайными числами в диапазоне [50, 100];
• найти сумму значений всех элементов массива;
• найти сумму значений чётных элементов массива;
• найти количество отрицательных элементов массива;
• найти максимальный элемент массива.

Перестановка элементов массива

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

Представьте себе, что в кофейной чашке налит сок, а в стакане — кофе, и вы хотите, чтобы было наоборот. Что вы сделаете?

Вернёмся к программированию. Чтобы поменять местами значения двух переменных — а и b, нужно использовать третью переменную того же типа:

Перестановка двух элементов массива, например А [i] и А [к], выполняется так же:

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

Задача 1. Массив А содержит чётное количество элементов N. Нужно поменять местами пары соседних элементов: первый со вторым, третий — с четвёртым и т.д. (рис. 4.1).

Обработка массивов.

Рис. 4.1

С каким элементом нужно поменять местами элемент А [i]? Зависит ли ваш ответ от свойств числа i?

Сергей написал такой алгоритм для решения задачи 1:

нц для i от 1 до N

поменять местами A[i] и A[i+1]

кц

Выполните его вручную для массива (N = 4). Объясните результат. Найдите ошибки в этом алгоритме.

Обратите внимание, что на последнем шаге цикла мы будем менять местами элемент А [ N ] с несуществующим элементом A [N+1 ]. Это вызовет ошибку, которая называется выход за границы массива. Но даже если изменить наибольшее значение переменной цикла на N-1, программа всё равно будет работать неправильно, т. е. приведёт к неверному решению задачи 1. Получится, что первый элемент просто «переедет» на место последнего.

Для того чтобы исправить программу, нужно изменять переменную i с шагом 2:

Обработка массивов.

Решение на языке Паскаль получилось немного более сложным, потому что в этом языке можно изменять переменную цикла только с шагом 1 или -1, а нам нужен шаг 2. В этой ситуации можно, например, использовать цикл с условием (цикл while).

Предложите другое решение этой задачи, записав нужные операторы в теле цикла.

Обработка массивов.

Реверс массива

Задача 2. Требуется выполнить реверс массива, т. е. переставить элементы массива в обратном порядке, так чтобы первый элемент стал последним, а последний — первым (рис. 4.2).

Обработка массивов.

Рис. 4.2

С каким элементом нужно поменять местами элемент А [1] ? Элемент А [2]? Элемент А [i]?

Если индекс первого элемента в паре увеличивается на 1, а индекс второго элемента уменьшается на 1, что можно сказать о сумме индексов этих элементов?

В этой задаче сумма индексов элементов, участвующих в обмене, для всех пар равна N+1, поэтому элемент с номером i должен меняться местами с (N+l-i)-M элементом.

Выполните вручную следующий алгоритм для массива (N = 4). Объясните результат. Найдите ошибки в этом алгоритме (почему он не решает задачу 2?).
нц для i от 1 до N
поменять местами A[i] и А[N+1-i]
кц

Для того чтобы не выполнять реверс дважды, нужно остановить цикл на середине массива:
нц для i от 1 до div(N, 2)
поменять местами А[i] и A[N+l-i]
кц

Запишите в тетради операторы, которые нужно добавить в тело цикла. Для обмена используйте вспомогательную переменную с.
нц для i от 1 до div(N, 2) for i:=l to N div 2 do begin
• • • • • •
КЦ end;

Запишите в тетради другое решение задачи реверса массива, которое использует цикл с условием (пока, while).

Линейный поиск в массиве

Очень часто требуется найти в массиве заданное значение или определить, что его там нет. Для этого нужно просмотреть все элементы массива с первого до последнего. Как только будет найден элемент, равный заданному значению X, надо завершить цикл и вывести результат. Такой поиск называется линейным.

Сколько операций сравнения придётся выполнить, если в массиве N элементов? В каком случае количество сравнений будет наименьшим? Наибольшим?

Катя торопилась и написала такой алгоритм линейного поиска:
i:=1
нц пока A[i]<>Х i:=i+l
кц
вывод ‘А [‘, i,’] = ‘,X

Проверьте: правильно ли сработает алгоритм, если искать в массиве число 2? Число 4?

Этот алгоритм хорошо работает, если нужный элемент в массиве есть, однако приведёт к ошибке, если такого элемента нет, — получится зацикливание и выход за границы массива. Чтобы этого не произошло, в условие нужно добавить ещё одно ограничение: i

Читайте также:
Программа davinci resolve что это

Обработка массивов.

В сложном условии i X первым должно проверяться именно отношение i N, проверка условия А [i] <> X приводит к выходу за границы массива, и программа может завершиться аварийно.

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

Обработка массивов.

Для выхода из цикла используется оператор выход (в Паскале — break), номер найденного элемента сохраняется в переменной nХ. Если её значение осталось равным нулю (не изменилось в ходе выполнения цикла), то в массиве нет элемента, равного X.

Сортировка массивов

Сортировка — это расстановка элементов списка (массива) в заданном порядке.

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

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

Математики и программисты изобрели множество способов сортировки. В целом их можно разделить на две группы: 1) простые, но медленно работающие (на больших массивах), и 2) сложные, но быстрые.

Мы изучим один из простых методов, который называется методом выбора. Для примера будем рассматривать сортировку по возрастанию (неубыванию).

Предположим, что мы нашли минимальный элемент массива. Где он должен размещаться в отсортированном массиве?

Запишите в тетради фрагмент программы для поиска номера минимального элемента массива.

Для того чтобы поставить на место минимальный элемент, мы просто поменяем его местами с первым элементом массива.

Запишите в тетради фрагмент программы, который меняет местами элементы А[1] и A[nMin]. Используйте вспомогательную переменную с.

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

Обработка массивов.

На первом шаге внешнего цикла значение i равно 1, и мы ставим на первое место минимальный элемент. На следующем шаге i = 2, мы ищем минимальный элемент среди всех, кроме первого, и т. д.

Обратите внимание, что внешний цикл выполняется N-1 раз (а не N). Этого достаточно, потому что если N-1 элементов стоят на своих местах, то последний тоже стоит на своём месте (другого свободного места для него нет).

Решение на языке Паскаль выглядит так:

Обработка массивов.

Что получится, если внешний цикл (по переменной i) выполнить только 1 раз? Только 3 раза?

Выводы

• Поменять местами значения двух элементов массива можно с помощью вспомогательной переменной.
• Выход за границы массива — это обращение к элементу массива с несуществующим индексом.
• Линейный поиск — это перебор всех элементов массива до тех пор, пока не будет найден нужный элемент или не закончится массив.
• Сортировка — это расстановка элементов списка (массива) в заданном порядке. Для чисел обычно используют сортировку по возрастанию (неубыванию) или убыванию (невозрастанию). Данные сортируют для того, чтобы ускорить последующий поиск.

Нарисуйте в тетради интеллект-карту этого параграфа.

Вопросы и задания

1. Что такое выход за границы массива? Что опаснее — чтение или запись данных за границами массива?
2. На какой идее основан метод сортировки выбором?
3. Объясните, зачем нужен вложенный цикл в алгоритме сортировки.
4. Как нужно изменить программу сортировки, чтобы элементы массива были отсортированы по убыванию?
5. Выполните по указанию учителя задания в рабочей тетради.

Подготовьте сообщение

а) «Сортировка методом пузырька»
б) «Сортировка методом вставки»

§20. Обработка массивов.

Источник: murnik.ru

Последовательный поиск в массиве (окончание)

Программа поиска в сформированном нами массиве а значения, равного х, может выглядеть так:

В этой программе последовательно просматриваются все элементы массива. Если в массиве несколько элементов, значения которых равны заданному числу, то программа найдёт последний из них.

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

i: =0 ;
repeat
i:=i+1;
until (a[i]=x) or (i=10);
if a[i]=x then write(i) else write(‘Heт’)

Здесь выполнение алгоритма будет прервано в одном из двух случаев: 1) в массиве найден первый из элементов, равный заданному; 2) все элементы массива просмотрены.

Запишите полный текст программы и выполните её на компьютере.

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

Определите, количество каких элементов подсчитывается в следующем фрагменте программы.

Если требуется определить сумму значений элементов, то вводят переменную, к значению которой прибавляют значение найденного элемента массива.

Определите, какому условию удовлетворяют элементы массива, значения которых суммируются в следующем фрагменте программы.

Запишите полные тексты двух последних программ и выполните их на компьютере.

Источник: xn--24-6kct3an.xn--p1ai

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru