|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[13] 1.Разложить произвольное длинное целое число N на массив Z составляющих его цифр. Например, N=538, разлогается на Z[1]= 5, z[2]= 3, Z[3]= 8. 2.Определить массив всех простых чисел от 1 до N. Алгоритм состоит в нахождении чисел не делящихся нацело на ранеее найденные простые числа. Например, при Z[1]=2, Z[2]=3, проверяются числа >3, не делящиеся нацело на Z[1] и Z[2]. Наибольшее проверяемое число не превышает Vn. Примечание: Установить ограничение по числу элементов массива "Z" , 1. 10. 2. Работа с элементами переменной строкового типа Переменная строкового типа (String) может рассматриваться как массив элементов символьного типа (Char). Например, если в программе определены переменные S: string; C: char; и задано 8:=Москва, то 8[1]=М, 8[2]=о и т. д. и возможно присвоение, например: C:= S[1]; Таким образом строка может рассматриваться как линейный массив символов. Элементы массива, составляющие строку можно переставлять местами и получать новые слова, например: for i:= 1 to N div 2 do begin C:= S[i]; S[i]:= S[N-i+1]; S[N-i+1]:= C end; Writeln(S); { исходное слово выведется справа налево: " авксоМ" } Здесь N:= ord(S[0]); - число символов в переменной "S" хранится в переменной S[0]. Функция "ord" преобразует символьный тип в целый. N div 2 - количество перестановок для слова из "N" символов. В переменной "C" запоминается значение i- го элемента, который меняется с элементом, симметричным относительно середины строки. Можно производить поиск и замену заданного символа в строке, например: for i:=1 to N do if S[i]= then writeln(найден символ пробел); for i:=1 to N do if S[i] = / then S[i]: = \; {замена символа "/" на "\"} Заменяя или переставляя символы в строке по определенной схеме (закону) можно зашифровать строку. Для дешифровки используется, как правило, схема обратной перестановки или замены символов. Например: for i:=1 to N do S[i]:= chr(ord(S[i])+2); {преобразование исходных символов в символы с кодом большим на две единицы} Напомним, что все используемые в MS-DOS символы имеют ASCII коды от 0 до 255. Здесь удобно также использовать функции Pred(C); и Succ(C); Практическое задание N 1. 22 1.Зашифровать введенную с клавиатуры строку, заменой исходных символов на символы с кодом большим на три единицы. Провести дешифровку. 2.Зашифровать введенную с клавиатуры строку, заменой символов на символы с кодом меньшим на две единицы. Провести дешифровку. 3.Зашифровать введенную с клавиатуры строку, поменяв местами первый символ со вторым, третий с четвертым и т. д. Провести дешифровку. 4.Зашифровать введенную с клавиатуры строку, поменяв местами первый символ с третьим, второй с четвертым и т. д. Провести дешифровку. Примечание к п. п. 1-4: Выводить на экран шифрованную и дешифрованную строки. 5.Найти и заменить символ в строке введенной с клавиатуры с подтверждением каждой замены. Программа должна запрашивать заменяемый и заменяющий символы, например: заменить i-ый символ "ф" на "Ф" в введенной строке? Вывести преобразованную строку на экран. 6.Определить и вывести на экран номера позиций и количество повторений заданного символа (или его кода) в строке, введенной с клавиатуры. 1. 10. 3. Двумерные массивы Массивы, рассмотренные выше, имеют элементы, упорядоченные по одному индексу и называются одномерными массивами или векторами. Массив может быть двумерным, трехмерным и т. д. Двумерные массивы имеют элементы, упорядоченные по двум индексам и часто называются матрицами. В Турбо-Паскале при описании многомерного массива диапазоны изменения индексов перечисляются через запятые, например: Var A: array[1..30, 1..7] of byte; Рассмотрим пример работы с двумерными массивами. Обозначим массивом оценки учеников класса по нескольким предметам. Каждая оценка является значением элемента массива оценок "A" и имеет порядковый номер (два индекса). Поставим в соответствие первому индексу номер фамилии в списке учеников, а второму -номер предмета, по которому получена оценка. Тогда двумерный массив оценок можно представить в виде таблицы: каждый элемент a[i, j] находится на пересечении I-ой строки и J-го столбца. Исходные данные могут быть представлены в виде таблицы оценок: Годовые оценки по предметам: Фамилия Предмет физика алгебра геометрия история биология Иванов Петров Сидоров 30. I Якупов Можно создать одномерные массивы фамилий "S" учеников класса и наименований предметов "P" . Значением элемента массива "Р" будет наименование предмета, а индексом - порядковый номер предмета, например: 1 - физика, 2 - химия, 3 - алгебра, 4 - геометрия, 5 - история, 6 - биология. Приведенная выше таблица может быть представлена в виде набора элементов ( число строк = N, число столбцов = M ): Номер столбца "J":
Массив оценок можно задать с использованием функции Random, например: for i:= 1 to N do for j:= 1 to M do A[i, j]:= random(4)+2; Для вывода наименований предметов ( "шапка" таблицы ) можно использовать операторы: Writeln; Write(Фамилия\\Предметы: ); For i:= 1 to M do write(P[i]:9, ); Для вывода элементов массива на экран удобно использовать вложенный цикл: for i:= 1 to N do begin writeln; write(S[i]:19, ; for j:= 1 to M do write(A[i,j]:7, )end; Для расчета массива "SS" - сумм "M" элементов в каждой из "N" строк массива "A" (NxM) можно применить операторы: for i:= 1 to N do begin SS[i]:= 0; for j:= 1 to M do SS[i]:= SS[i] + A[i, j] end; Здесь для каждого индекса "i" от 1 до N происходит суммирование элементов A[i, j] по индексу "j" от 1 до M. При модификации массива изменяется расположение данных в исходном массиве, например, в случае вставки данных из линейного массива "B" в колонку с номером "M1" необходимо сдвинуть данные в колонках J >= M1 используя операторы: for i:= 1 to N do begin for j:=M+1 downto M1+1 do A[i,j]:=A[i,j-1]; A[i,M1]:=B[i] end; Если порядковый номер предмета изменится, то необходимо изменить расположение оценок в массиве "A", например, перестановку колонок с оценками по физике и химии можно сделать операторами: for j:= 1 to N do begin a1:=A[1,j]; A[1,j]:=A[2,j]; A[2,j]:=a1 end; |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||