Массивы. Одномерные массивы
Методические указания к решению задач контрольной работы
Пример 2.1.Постройте таблицу истинности для логического выражения F = (A\/B) /\С Решение. 1. В данной функции три логические переменные – А, В, С 2. количество строк таблицы = 23 =8 3. В формуле 3 логические операции. 4. Расставляем порядок действий 1) А\/ В; 2) С;3) (AVB)/\С . 5. количество столбцов таблицы = 3 + 3 = 6 6.
Пример 3.1 Решение.
Решение. От пункта А есть прямая дорога в пункт В составляющая 7, от пункта В проложен маршрут в город С протяженностью 8, из С можно добраться в Е преодолев всего 15, таким образом длина пути равна 30.
От пункта А есть прямая дорога в пункт С составляющая 11, от пункта С проложен маршрут в город D протяженностью 6, из D можно добраться в Е преодолев всего 3, таким образом длина кратчайшего пути равна 20. Ответ. 20
Задание 4. В таблице приведены запросы к поисковому серверу. Расположите обозначения запросов в порядке возрастания количества страниц, которые найдет поисковый сервер по каждому запросу. Для обозначения логической операции «ИЛИ» в запросе используется символ «|», а для логической операции «И» - «&».
Решение. В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Какое количество страниц (в тысячах) будет найдено по запросу Пушкин & Лермонтов?
Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов. Решение: Через Ответ(Z) будем обозначать множество страниц, найденных по запросу Z, а через N(Z) – размер множества Ответ(Z), то есть количество страниц, найденных по запросу Z. В этих обозначениях множество Ответ(X&Y) - это пересечение множеств Ответ(X) и Ответ(Y), а множество Ответ (X | Y) – объединение Ответ(X) и Ответ(Y). По запросу Пушкин |Лермонтов было найдено 4500 страниц. Среди них были страницы, содержавшие либо оба этих слова, либо только одно из них. Если сложить количество страниц, найденных по запросу Пушкин и количество страниц, найденных по запросу Лермонтов, то страницы, найденные по запросу Пушкин & Лермонтов будут учтены дважды. Поэтому верна формула: N(Пушкин|Лермонтов) = N(Пушкин) + N(Лермонтов) –N(Пушкин & Лермонтов) В соответствии с этой формулой и условием задачи получаем: 4500 = 3500+2000- N(Пушкин & Лермонтов) N(Пушкин & Лермонтов) = 3500+2000-4500 = 1000 Ответ:1000 Замечание. Приведенные рассуждения отражают следующий простой факт из теории множеств. Применительно к нашей задаче его можно записать так. Для любых запросов X и Y выполнено: N(X | Y) = N(X)+N(Y) – N(X&Y) Задание 5. Запишите значение переменной k, полученное в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Решение. Цикл «for i := 1 to 3 do» выполняется три раза. Каждый раз переменной k присваивается значение i + 2*k. Найдём значения k после каждого шага, учитывая, что изначально k = 4: 9; 20; 43. Ответ: 43
Массивы. Одномерные массивы. При работе с большим числом данных одного типа очень удобно использовать массивы. Массив, это разновидность переменной. Он дает возможность хранить сколько угодно значений под одним и тем же именем. К каждому конкретному значению массива, необходимо обращаться через числовой индекс. Массив - это набор переменных, имеющих одинаковое имя (идентификатор), но различающихся порядковыми номерами (индексами). Обычно массивы применяют для группировки переменных, имеющих много общих свойств. Например, если в классе 30 учеников, то имя каждого ученика можно было бы сохранить в отдельной строковой переменной: name1, name2, ... Но вводить 30 новых переменных крайне неудобно. Можно сделать проще: объявить один массив name(), имеющий 30 элементов. В скобках проставляется индекс, когда надо обратиться к какому-то конкретному элементу. Отсчет элементов массива во многих языках начинается с нуля. Поэтому имя первого (по классному журналу) ученика будет храниться в переменной name(0), второго - в переменной name(1), а последнего (тридцатого) - в переменной name(29). Для того чтобы использовать массив его надо сначала объявить в программе. Для этого используют оператор DIM. По умолчанию (если нет оператора DIM в программе) считается заданным массив из 10 элементов. Пример: DIM a(100) AS INTEGER DIM mas1(10) AS INTEGER Mas1
Обращение к элементам массива: a(24) Основное преимущество массивов перед обычным набором разноименных переменных состоит в том. что индекс нужного элемента можно записывать не числом, а переменной или даже вычислять по выражению. Это дает возможность использовать массивы внутри циклов - собственно для этого они и были придуманы. Если в программе есть массив, то, скорее всего, в ней же вы найдете и цикл. Можно также объявить массив и таким образом: DIM mas2(1 TO 10) AS INTEGER Mas2
или даже так: DIM a2(5 TO 10) AS INTEGER В данном случае индексация элементов массива начинается не с нуля, а с нужного вам индекса (в примере массив mаs2 имеет индексы от 1 до 10, массив а2 - от 5 до 10). Допустим в классе 30 учеников. Предположим, что для хранения их оценок по предмету создан массив DIM mark(30) AS INTEGER. Следующая программа, поставит каждому учащемуся случайную оценку от 3 до 5. Конечно, так расставлять оценки нельзя, но этот пример показывает, что программа не становиться сложнее, если в классе не 30 учеников, а сто пятьдесят миллионов. Сочетание массивов и циклов позволяет достичь удивительной простоты. REM Выставление оценок :)
Mark
Для создания случайных чисел в языке Basic служит стандартная функция RND. Она создает случайное число в диапазоне от 0 до 1. Умножив его на 3, мы получаем случайное число от 0 до 3. А взяв от него целую часть (с помощью функции INT), получим целое случайное число в диапазоне от 0 до 2. Прибавив к нему число 3, мы поучаем случайную оценку, которая не меньше 3 и не больше 5. Пример: Составить программу заполнения массива из 15 элементов случайными числами в диапазоне от 1 до 10. Предусмотреть вывод массива на экран. REM Заполнение и вывод массива CLS - очистка экрана. Точка с запятой (;) в операторе PRINT позволяет выводить элементы массива в строку. Тоже самое задание, но отличающиеся объявлением массива: REM Заполнение и вывод массива Всё очень просто. Какой из вариантов использовать решать вам. Пример: Вывести количество отрицательных элементов массива. REM Вывести количество отрицательных элементов Подсчет количества отрицательных элементов массива происходит в цикле: Пример: Составить программу для вычисления наибольшего элемента массива и его номера. REM вычисления наибольшего элемента массива и его номера Задание выполняется в строчках: max=mas(0) Вначале примем за наибольший элемент - первый элемент массива mas(0). Затем перебирая все элементы по очереди сравниваем их со значение max и если mas(I)>max, то принимаем этот элемент за наибольший. Иногда для ввода данных удобно использовать операторы DATA и READ.
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (378)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |