русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

РАЗДЕЛ РАБОТЫ


Дата добавления: 2015-07-23; просмотров: 819; Нарушение авторских прав


1. Найти первый максимальный элемент массива и его индек­сы.

Процедура Append открывает существующий файл для добавле­ния в него информации. Описание —Append(Var f:Text). Пере­менная f является файловой переменной типа Text, которая должна быть связана с внешним файлом с помощью процедуры Assign. Процедура Append открывает существующий внешний файл, имя которого поставлено в соответствие переменной f. Если файл уже открыт, то сначала он закрывается, а затем от­крывается повторно. Указатель текущей позиции (вспомните головки чтения, записи в магнитофоне) при этом устанавлива­ется на конец данного файла.

Если сама процедура поиска первого максимального элемен­та массива вряд ли вызывает вопросы, то для вывода результа­та в файл Output.txt наших знаний не хватает. Мы можем пе­реопределить вывод и значение максимального элемента с его индексами выводить на экран. Для этого необходимо:

Assign(Output,'Con'); Rewrite(Output);

и написать оператор WriteLn(Max,' ‘,iMax,' ',jMax). Однако массив выводится в файл Output.txt, а результаты работы — на экран. Где логика?

Воспользуемся процедурой Append. Добавление к основной программе может иметь и такой вид:

Search (n,m,A,Max,iMax, jMax) ;

Append (Output) ;

WriteLn (Max:5,iMax:5,jMax:5);

Измените процедуру Search для поиска последнего максима­льного элемента, для поиска всех максимальных элементов и их индексов.

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

3. Определить, есть ли в массиве элемент, равный 0.



Недостаток функции SNeg. Пусть первый элемент массива Х[1,1] равен нулю. Просмотр массива продолжается, несмотря на его бессмысленность. Устранение неточности — «задача опре­деляет тип используемых конструкций повторения» — требует использования операторов While или Repeat — Until в функции Sneg. Проделайте это.

Домашнее задание: 1.1,1.2,1.3,2.1,2.3

4. Определить, является ли данный квадратный массив симмет­ричным относительно своей главной диагонали. Элементы на главной диагонали характеризуется совпадением значением индексов — i=j, на второй i=N-j+l, где N — размерность мас­сива.

Измените функцию так, чтобы симметричность массива про­верялась относительно второй диагонали. В предыдущем при­мере был рассмотрен недостаток функции SNeg. Он присущ и этой функции. Устраните его.

 

 

5. В массиве А размерностью n*m к элементам четных столбцов прибавить элемент первого столбца соответствующей строки.

Особенностью решения задач этого типа является возмож­ность изменения элемента, который должен использоваться в обработке. Например, прибавляем к элементам нечетных столб­цов. Модификация X[i,2*j-l] приведет к тому, что элементы 3, 5 и т. д. столбцов увеличатся на удвоенное значение элемен­тов первого столбца. Проведите корректное изменение процеду­ры Change.


То есть заполняется в виде «змейки».

6. Заполнить массив A размером n*m следующим образом, на­пример n=6 и m=8:

Правило заполнения. Если номер строки — нечетное число, то A[i,j]=(i-l )*m+j, иначе — A[i,j]=i*m

 



Заполните массив по следующим правилам.

7. Составить программу, запрашивающую координаты ферзя на шахматной доске и показывающую поля доски, находящие­ся под боем.

Заметим, что шахматную доску удобно представить в виде двумерного массива размером 8*8. Координаты ферзя опреде­ляются двумя числами (номер строки и номер столбца), но в шахматах принято вводить букву и число. Буква отвечает за номер строки, а число — за номер столбца. Поэтому не будем отступать от традиций и введем координаты именно таким об­разом. В программе сделаем проверку корректности ввода и если все правильно, то переведем букву в соответствующее ей число ('а' — 1, 'b' — 2, 'с' — 3,'d' — 4, ‘e’ — 5, ‘f’ — 6, 'g'-7,'h'- 8 ). Для решения задачи используем ряд свойств шахмат­ной доски. Все диагонали доски делятся на восходящие и ни­сходящие.


На каждой диагонали выполняется свойство:

для клеток любой восходящей диагонали сумма номера

строки и номера столбца постоянна (i+j=Const); для клеток любой нисходящей диагонали разность номера

строки и номера столбца постоянна (i-j=Const). Проверьте, что для восходящих диагоналей сумма индек­сов изменяется от 2 до 16, а для нисходящих — разность от -7 до 7.

 

Основная программа состоит из одной строки — вызов про­цедуры Solve. Измените решение так, чтобы фиксировались клетки доски, находящиеся под боем хотя бы одной из фи­гур — ферзя и ладьи.



<== предыдущая лекция | следующая лекция ==>
ЭКСПЕРИМЕНТАЛЬНЫЙ | ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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