164
Лабораторная работа № 3
Структурирование и отбор данных в ЭТ
Время выполнения 8 часов.
Задание. Создайте ЭТ СТИПЕНДИАЛЬНАЯ ВЕДОМОСТЬ ФАКУЛЬТЕТА. Представьте, что на факультете - 5 курсов, на каждом курсе - 2 группы, в группах - по 25 человек. В таблице используйте данные: ФИО студента, успеваемость (средний балл за сессию), сумма, надбавки за отличную и хорошую учебу. Стипендия студентам, имеющим балл ниже 3,5, не начисляется (в соответствующей графе указать 0).
Подготовьте отчеты по указанным в вариантах заданиям.
Варианты заданий
Вариант 1
Сформируйте сводную ведомость студентов с отличной учебой. Выдайте диаграмму с долей таких учащихся. Создайте отчеты по каждому курсу с графическим отображением. Оформите диаграммы распределения отличников по группам курса и по курсам.
Вариант 2
Сформируйте сводную ведомость студентов со средней успеваемостью. Выдайте диаграмму с долей таких учащихся. Создайте отчеты по каждому курсу с графическим отображением. Оформите диаграммы распределения студентов со средней успеваемостью по группам курса и по курсам.
Вариант 3
Сформируйте сводную ведомость неуспевающих студентов. Выдайте диаграмму с долей таких учащихся. Создайте отчеты по каждому курсу с графическим отображением. Оформите диаграммы распределения неуспевающих студентов по группам курса и по курсам.
Вариант 4
Пусть первоначально составленная ведомость определяет фиксированный стипендиальный фонд факультета. Отмените выдачу стипендии для студентов, имеющих средний балл успеваемости ниже 4. Перераспределите экономию стипендиального фонда для каждой группы и для каждого курса в зависимости от доли отличников. Выдайте соответствующие отчеты.
Вариант 5
Пусть первоначально составленная ведомость определяет фиксированный стипендиальный фонд факультета. Отмените надбавки за отличную учебу. Перераспределите экономию стипендиального фонда для каждой группы и для каждого курса в зависимости от доли студентов, получающих стипендию. Выдайте соответствующие отчеты.
Вариант 6
Пусть первоначально составленная ведомость определяет фиксированный стипендиальный фонд факультета. Отмените выдачу стипендии для студентов, имеющих средний балл успеваемости ниже 4,5. Экономию стипендиального фонда
165
перераспределите всем студентам пропорционально их успеваемости. Составьте диаграммы роста размера стипендии для успевающих студентов (балл выше 4,5).
Вариант 7
Пусть первоначально составленная ведомость определяет фиксированный стипендиальный фонд факультета. Перераспределите заданный фонд всем (без исключения) студентам. Составьте диаграммы изменения размера стипендии для трех категорий студентов (отличники, успевающие, неуспевающие).
Вариант 8
Отчислите из каждой группы произвольным образом по три студента (не только неуспевающих!). Выполните задание варианта 1.
Вариант 9
Отчислите из каждой группы произвольным образом по несколько студентов, не менее 5 в каждой группе (не только неуспевающих!). Выполните задание варианта 2.
Вариант 10
Пусть первоначально составленная ведомость определяет фиксированный стипендиальный фонд факультета. Внесите в каждую группу дополнительно до трех студентов с разной успеваемостью. Перераспределите стипендиальный фонд в основном за счет лишения стипендии студентов с низким баллом успеваемости. Составьте отчет по изменению числа студентов, получающих стипендию, по курсам.
Вариант 11
Дополнительно факультету выделено 50 % стипендиального фонда. Проведите перерасчет размера стипендии. Составьте отчеты изменения размера стипендии по трем категориям студентов (по успеваемости).
Вариант 12
Дополнительно факультету выделено 50 % стипендиального фонда. Назначьте стипендию всем студентам. Составьте отчеты изменения размера стипендии по трем категориям студентов (по успеваемости).
Вариант 13
Дополнительно факультету выделено 50 % стипендиального фонда. Распределите надбавку среди отличников. Составьте диаграмму стипендиальных фондов каждой группы и курса.
Вариант 14
Дополнительно факультету выделено 50 % стипендиального фонда. Распределите надбавку среди успевающих. Составьте диаграмму стипендиальных фондов каждой группы и курса.
Вариант 15
Дополнительно факультету выделено 50 % стипендиального фонда. Распределите надбавку всем студентам групп. Составьте диаграмму стипендиальных фондов каждой группы и курса.
166
163 :: 164 :: 165 :: 166 :: Содержание
167 :: Содержание
Дополнительная литература
- Вемпен Ф. Microsoft Office Professional: 6 книг в одной: Пер. с англ. - M.: Бином, 1977.
- Джонс Э., Саттон Д. Библия пользователя Office 97: Пер. с англ. - Киев: Диалектика, 1997.
- Ермолович E.A., Макарова C.B., Хегай Л.Б. Операционные системы и информационные технологии. - Красноярск, 2000.
- Ефимова O., Морозов В., Шафрин Ю. Курс компьютерной технологии. - M.: ФБФ, 1998.
- Ефимова O., Морозов В., Шафрин Ю. Практикум по компьютерной технологии. - M.: ФБФ, 1998.
- Лядова Л.Н. Персональный компьютер: От начинающего пользователя до профессионала: В 2 т. - Пермь: ПГУ, 1998.
- Макарова H.B. и др. Информатика. Практикум по технологии работы на компьютере. - M.: Финансы и статистика, 1998.
- Персон P. Microsoft Excel 97 в подлиннике: В 2 т. - СПб.: BHV-Санкт-Петербург, 1997.
- Семенщиков А. Microsoft Excel. Приемы и методы практического программирования. - Брянск, 1998.
167
167 :: Содержание
167 :: 168 :: 169 :: 170 :: 171 :: 172 :: 173 :: 174 :: 175 :: 176 :: 177 :: 178 :: 179 :: 180 :: Содержание
Тесты к главе 2
Операционные системы
- В состав программного обеспечения ЭВМ не входят:
- 1) системы программирования; 2) операционные системы;
- 3) аппаратные средства; 4) прикладные программы.
- Операционная система представляет из себя:
- 1) комплекс программ специального назначения;
- 2) комплекс аппаратных средств;
- 3) совокупность ресурсов компьютера;
- 4) комплекс инструментальных программ.
- ОС MS DOS является:
- 1) однопользовательской, однозадачной;
- 2) однопользовательской, многозадачной;
- 3) многопользовательской, однозадачной;
- 4) многопользовательской, многозадачной.
- Директорий в ОС MS DOS может содержать символов в своем полном имени:
1) 11; 2) 8; 3) 7; 4) 12.
- Назначение оболочек операционных систем:
- 1) защита операционной системы;
- 2) предоставление возможности написания программ;
- 3) облегчение взаимодействия пользователя с компьютером;
- 4) перечислены в пунктах 1-3.
- Поименованная совокупность данных, хранимая во внешней памяти, - это:
- 1) файловая система; 2) директорий; 3) файл; 4) запись.
- Принципиальным отличием ОС Windows от ОС MS DOS является:
- 1) многозадачность;
167
- 2) возможность обмена данными между работающими программами;
- 3) графический интерфейс;
- 4) перечислены в п. 1-3.
- Командный процессор - это:
- 1) ресурс; 2) устройство; 3) программа; 4) часть центрального процессора.
- Интерпретатором команд MS DOS является файл с именем:
- 1) AUTOEXEC.bat; 2) MS DOS.sys;
- 3) CONFIG.sys; 4) COMMAND.com.
- Основными компонентами в составе ОС являются:
- 1) утилиты, командный процессор, ядро;
- 2) резидентные программы, утилиты;
- 3) утилиты, командный процессор, центральный процессор;
- 4) резидентные программы, ядро, командный процессор.
- В ОС Unix реализован механизм несмежного распределения блоков файлов. Какому элементу списка, находящегося в дескрипторе файла, принадлежит первый уровень косвенной адресации:
- 1) 10-му; 2) 11-му; 3) 12-му; 4) 13-му.
- Системной причиной прерываний первого рода является:
- 1) необходимость синхронизации между параллельными процессами;
- 2) потребность активного процесса в некотором ресурсе;
- 3) получение запроса на прерывание от пользователя;
- 4) окончание интервала мультиплексирования.
- Системной причиной прерываний второго рода является:
- 1) необходимость синхронизации между параллельными процессами;
- 2) потребность активного процесса в некотором ресурсе;
- 3) получение запроса на прерывание от пользователя;
- 4) окончание интервала мультиплексирования.
- Если слева от раскрытой папки в ОС Windows изображен знак "+", то это означает, что:
- 1) в папке есть файлы;
- 2) в папке есть папки;
- 3) в папке есть непустые файлы;
- 4) в папку можно добавлять файлы.
- Символ "?", используемый при написании имени файла в ОС MS DOS:
- 1) заменяет один произвольный символ;
- 2) заменяет произвольное число произвольных символов;
- 3) заменяет расширение файла;
- 4) указывает на то, что путь к файлу не известен.
- В Norton Commander при нажатии функциональной клавиши F4:
- 1) происходит вызов контекстной подсказки;
- 2) вызывается простейший редактор;
- 3) архивируется указанный файл;
- 4) создается директорий на активной панели.
- Исполняемыми в ОС MS DOS являются файлы с расширениями:
- 1) com, pas, exe; 2) bat, exe, doc;
- 3) pas, bat, com; 4) bat, exe, com.
- Скобки [ ] в описании формата команда ОС MS DOS:
- 1) указывают на возможность отсутствия фрагмента;
- 2) предназначены для обозначения ключей;
- 3) предназначены для обозначения атрибутов;
168
- 4) как правило, содержат имя и путь файла.
- Чтобы отключить панели в Norton Commander, можно нажать клавиши:
- 1) <Alt>+<Fl>; 2) <Alt>+<F2>; 3) <Ctrl>+<O>; 4) <Ctrl>+<S>.
- Для того чтобы команда COPY в ОС MS DOS не запрашивала подтверждения при замене существующих файлов, нужно набрать ключ:
- 1) [/S]; 2) [/Y]; 3) [/Q]; 4) [/X].
- Команда "DIR" с ключом [/P] в ОС MS DOS:
- 1) выводит список файлов и каталогов, пока экран не заполнится, для получения следующих экранов нужно нажимать любую клавишу;
- 2) выводит информацию в сокращенном виде - только имена файлов и директориев;
- 3) выводит только скрытые файлы;
- 4) выводит все файлы, кроме системных.
- Если необходимо вызвать имя файла в командную строку для формирования параметров команды в Norton Commander, нужно, выделив имя файла указателем, нажать одновременно:
- 1) <Alt> и <F1>; 2) <Ctrl> и <Enter>; 3) <Ctrl> и <S>; 4) <Ctrl> и <Tab>.
- Для того чтобы команда "DIR" в ОС MS DOS выводила только скрытые файлы, нужно набрать ключ:
- 1) /P[[:] H ]; 2) /A[[:] S]; 3) /A[[:] H]; 4) /A[[:]-H].
- Для вызова окна установки атрибутов файла в Norton Commander следует нажать:
- 1) Alt-E; 2) Ctrl-Fl; 3) Alt-Q; 4) Shift-F3.
Системы программирования
- Все существующие языки программирования делятся на:
- 1) функциональные и логические; 2) русско- и нерусскоязычные;
- 3) процедурные и непроцедурные; 4) языки низкого и высокого уровня.
- Выберите верное утверждение:
- 1) компиляторы делятся на трансляторы и интерпретаторы;
- 2) трансляторы делятся на компиляторы и интерпретаторы;
- 3) интерпретаторы делятся на трансляторы и компиляторы;
- 4) перевод текста программы в машинный код осуществляется либо компилятором, либо транслятором.
- В главном меню систем программирования Турбо установку параметров отладки программы позволяет делать команда:
- 1) tools; 2) run; 3) window; 4) debug.
- Язык программирования Си является:
- 1) непроцедурным; 2) процедурным; 3) функциональным; 4) логическим.
- Транслятор - это программа, которая:
- 1) переводит текст программы в машинный код;
- 2) предоставляет средства для просмотра и изменения значений переменных;
- 3) подключает к исходному объектному модулю объектные модули соответствующих подпрограмм;
- 4) распознает и выполняет команды программы.
- Процедура очистки экрана в системе Турбо-Паскаль входит в модуль:
- 1) Graph; 2) Crt; 3) String; 4) Turbo3.
169
- Непроцедурным языком не является:
- 1) Лисп; 2) Кобол; 3) Оккам; 4) Смолтолк.
- При вычислении какого выражения транслятор обратится к подпрограмме:
- 1) (x + y)(x + y); 2) sqr(x + y);
- 3) (x + y)/N; 4) xy - x/y.
- Компоновкой называется:
- 1) процесс описания переменных в программе;
- 2) проверка, не нарушены ли формальные правила, содержащиеся в данном языке программирования;
- 3) просмотр и изменение значений переменных в ходе отладки программы;
- 4) подключение к исходному объектному модулю объектных модулей соответствующих подпрограмм.
- Неверным является утверждение:
- 1) системный диск может не содержать файл config.sys;
- 2) файл autoexec.bat не может не содержать ни одного байта;
- 3) система программирования может не содержать транслятора;
- 4) файл с расширением txt может быть не текстовым.
- Минимальный состав системы программирования, необходимый для работы программы, включает:
- 1) транслятор, отладчик, макроассемблер, средства редактирования, компоновки, загрузки;
- 2) транслятор, отладчик, макроассемблер;
- 3) транслятор, отладчик, макроассемблер, командный процессор;
- 4) транслятор, отладчик.
- Какой из представленных процессов трансляции имеет верный порядок:
- 1) синтаксический анализ, семантический анализ, компиляция, компоновка;
- 2) синтаксический анализ, лексический анализ, интерпретация, компоновка;
- 3) лексический анализ, семантический анализ, компоновка, загрузка;
- 4) синтаксический анализ, трансляция, компоновка, загрузка.
Текстовые редакторы и издательские системы
- Текстовый редактор Word - это:
- 1) прикладная программа; 2) базовое программное обеспечение; 3) сервисная программа; 4) редактор шрифтов.
- Издательская система представляет собой:
- 1) систему управления базой данных; 2) операционную оболочку;
- 3) комплекс аппаратных и программных средств; 4) графический редактор.
- Под термином "кегль" понимают:
- 1) размер полосы набора; 2) размер шрифта;
- 3) расстояние между строками; 4) начертание шрифта.
- Гарнитурой называется:
- 1) оптимальная пропорция издания;
- 2) совокупность шрифтов одного рисунка во всех начертаниях и кеглях;
- 3) совокупность элементов, из которых строится буква;
- 4) расстояние между нижним и верхним выносными элементами.
- Шрифт, которым набираются формулы в издании, всегда совпадает со шрифтом основного текста:
- 1) по наклону очка; 2) по размеру; 3) по гарнитуре; 4) по насыщенности.
170
- Фронтиспис - это:
- 1) иллюстрация, помещаемая в начале издания перед титулом;
- 2) начальная страница издания, предшествующая титулу;
- 3) страница издания, на которой размещаются основные библиографические данные;
- 4) добавочный титул, который помещается перед отдельными частями издания и содержит номер и название части.
- Выберите верное утверждение:
- 1) аннотации набирают шрифтом той же гарнитуры и кегля, что и основной текст;
- 2) знак охраны авторского права помещают в нижнем правом углу полосы набора;
- 3) на одной странице рекомендуется использовать не более одной гарнитуры и не более четырех кеглей;
- 4) шрифты кегля 9 рекомендуются для малоформатных справочников и словарей.
- Выберите верное утверждение:
- 1) при наборе титула желательно отдавать предпочтение шрифтам жирного начертания;
- 2) библиотечный индекс помещают в нижнем левом углу полосы набора;
- 3) комплексный книготорговый индекс помещают в нижнем правом углу полосы набора;
- 4) на одной странице рекомендуется использовать не более трех гарнитур и не более трех кеглей.
- В текстовом редакторе Лексикон выход в меню осуществляется нажатием функциональной клавиши:
- 1) F1; 2) F4; 3) F9; 4) F10.
- В текстовых редакторах и настольных издательских системах, как правило, с помощью клавиш Alt + F4 происходит:
- 1) переход в окно с предыдущей программой;
- 2) переход в окно со следующей программой;
- 3) открытие файла;
- 4) выход из программы.
- В текстовых редакторах и настольных издательских системах, как правило, с помощью клавиш Ctrl + S происходит:
- 1) создание нового документа; 2) открытие файла; 3) сохранение файла; 4) печать файла.
- Следующая последовательность действий:
- установить указатель мыши на полосе выделения рядом с текстом;
- нажать левую клавишу мыши и, удерживая ее, передвигать мышь в нужном
- направлении в Word приведет:
- 1) к выделению текста; 2) к удалению текста;
- 3) к перемещению текста; 4) к копированию текста в буфер.
- Следующая последовательность действий:
- выделить нужный участок текста;
- нажать на нем левую клавишу мыши и, удерживая ее, передвигать мышь до нужного места в Word приведет:
- 1) к копированию выделенного участка текста;
171
- 2) к переносу выделенного участка текста;
- 3) к замене текущего текста на выделенный;
- 4) к удалению выделенного участка текста в буфер.
- Абзацные отступы и ширина колонок могут изменяться в Word c помощью:
- 1) линейки прокрутки; 2) координатной линейки;
- 3) строки состояния; 4) поля пиктограмм.
- При нажатии на кнопку с изображением изогнутой влево стрелки на панели пиктографического меню в Word:
- 1) появляется диалоговое окно для добавления гиперссылки;
- 2) отменяется последняя команда;
- 3) происходит разрыв страницы;
- 4) повторяется последняя команда.
- При нажатии на кнопку с изображением дискеты на панели пиктографического меню в Word происходит:
- 1) считывание информации с дискеты; 2) запись документа на дискету;
- 3) сохранение документа; 4) печать документа.
- При нажатии на кнопку с изображением ножниц на панели пиктографического меню в Word:
- происходит разрыв страницы;
- вставляется вырезанный ранее текст;
- удаляется выделенный текст;
- появляется схема документа, разбитого на страницы.
- Какую комбинацию "горячих клавиш" нужно нажать в Word, чтобы вставить скопированный блок текста без использования пиктограмм:
- 1) Ctrl + С; 2) Shift + Enter; 3) Ctrl + E; 4) Ctrl + V?
- Какую комбинацию "горячих клавиш" нужно нажать в Word, чтобы выделить весь файл без использования пиктограмм:
- 1) Ctrl + S; 2) Ctrl + В; 3) Shift + Insert; 4) Ctrl + А?
- Какую комбинацию "горячих клавиш" нужно нажать в Word, чтобы вставить в текст гиперссылку без использования пиктограмм:
- 1) Alt + G; 2) Ctrl + К; 3) Shift + V; 4) Ctrl + С?
Графические системы
- Способ реализации построения изображений на экране дисплея, при котором электронный луч поочередно рисует на экране различные знаки - элементы изображения, называется:
- растровым; 2) векторным; 3) лучевым; 4) графическим.
- Редактор PaintBrush используется:
- 1) для работы базы данных; 2) для создания звуковых сигналов;
- 3) для создания текстовых документов; 4) для создания рисунков.
- Способ реализации построения изображений на экране дисплея, при котором изображение представлено прямоугольной матрицей точек, имеющих свой цвет из заданной палитры, называется:
- 1) растровым; 2) мозаичным; 3) пиксельным; 4) графическим.
- Бесконечный ряд равных плоских фигур, расположенных друг за другом таким образом, что элементарная конечная фигура переносится вдоль одного измерения бесконечно, называется:
- 1) орнаментом; 2) бордюром; 3) паркетом; 4) огранкой.
172
- Какое количество типов симметрии плоских орнаментов существует: 1) 7; 2) 17; 3) 24; 4) 12?
- Представление относительных величин объектов, которым на изображении сопоставляют размеры и расположение кругов в прямоугольной системе координат, называется:
- 1) гистограммой; 2) структурной схемой;
- 3) круговой гистограммой; 4) круговой диаграммой.
- Отображение исходных величин в виде точек, соединенных отрезками прямых линий, называется:
- 1) структурной схемой; 2) временной диаграммой; 3) гистограммой; 4) линейным графиком.
- Автокад - это:
- 1) АСНИ; 2) САПР; 3) АСУ; 4) АСУ ТП.
- Что характеризует общие принципы строения, целостность предмета, лежит в основе ритма, гармонии, ансамбля в архитектуре:
- 1) мера; 2) гармония; 3) симметрия; 4) композиция?
- Для того чтобы изобразить дугу по начальной точке, центру и длине хорды в программе АВТОКАД, необходимо выбрать режим:
- 1) AUTOCAD; 2) BLOCKS; 3) DRAW; 4) DISPLAY.
- Набор чисел, логических параметров, играющих роль коэффициентов в уравнениях, задающих графический объект заданной формы в научной графике, называют:
- 1) координатными моделями; 2) аналитическими моделями;
- 3) приближенными моделями; 4) демонстрационными моделями.
Системы управления базами данных
- Структура данных, для которой характерна подчиненность объектов нижнего уровня объектам верхнего уровня, называется:
- 1) табличной; 2) реляционной; 3) иерархической; 4) сетевой.
- Реализованная с помощью компьютера информационная структура, отражающая состояние объектов и их отношения, - это:
- 1) база данных; 2) информационная структура; 3) СУБД; 4) электронная таблица.
- В общий набор рабочих характеристик БД не входит:
- 1) полнота; 2) правильная организация;
- 3) актуальность; 4) единичность отношений.
- СУБД состоит из:
- 1) ЯОД, ЯМД; 2) ЯОД, ЯМД, СПО;
- 3) ЯОД, СПО, СВД; 4) ЯОД, ЯМД, СВД.
- Отличительной чертой реляционной базы данных является:
- 1) подчиненность объектов нижнего уровня объектам верхнего уровня;
- 2) то, что отношения между объектами определяются как "многие ко многим";
- 3) то, что каждая запись в таблице содержит информацию, относящуюся только к одному конкретному объекту;
- 4) возможность поиска данных по ключу.
- ЯОД является языком:
- 1) низкого уровня; 2) высокого уровня; 3) функциональным; 4) логическим.
173
- ЯОД предназначен:
- 1) для формализованного описания типов данных, их структур и взаимосвязей;
- 2) для выполнения операций с БД (наполнения, удаления, поиска, обновления);
- 3) для защиты данных БД от постороннего вмешательства;
- 4) для поддержания дружественности интерфейса.
- ЯМД не предназначен:
- 1) для наполнения БД, удаления данных из БД;
- 2) для обновления БД;
- 3) для выборки информации из БД;
- 4) для описания типов данных БД.
- Макрос - это:
- объект, представляющий собой структурированное описание одного или нескольких действий;
- часть командного процессора;
- язык программирования;
- текстовый редактор.
- К основным функциям СУБД не относится:
- 1) определение данных; 2) хранение данных; 3) обработка данных; 4) управление данными.
- СПО в составе СУБД нужны:
- 1) для создания и распечатки сводок по заданным формам на основе информации БД;
- 2) для формализованного описания типов данных, их структур и взаимосвязей;
- 3) для защиты данных БД от постороннего вмешательства;
- 4) для организации связей между таблицами через общие атрибуты.
- Тип Memo поля Type в СУБД DBASE существует:
- 1) для поля дат; 2) для поля памяти;
- 3) для числовых полей; 4) для логических полей.
- С помощью какой из перечисленных команд СУБД DBASE невозможно редактировать базу данных:
- 1) Change; 2) Edit; 3) Display; 4) Delete?
- Команда Join to в СУБД DBASE позволяет:
- 1) соединять целые БД; 2) передавать данные из одной БД в другую;
- 3) осуществлять поиск в базе; 4) индексировать БД.
- Ввод данных СУБД DBASE осуществляется командами:
- 1) Input; 2) Read; 3) Update; 4) команды 1) и 2).
- Поле Field name в СУБД DBASE не должно содержать:
- 1) знака подчеркивания; 2) пробела; 3) цифр; 4) скобок и кавычек.
- Пусть имеется отношение "Успеваемость" со следующей схемой:
Успеваемость (ФИО_студента, Дисциплина, Оценка, Дата, Преподаватель).
Результатом выполнения следующей команды
select unique ФИО_студента from Успеваемость
будет:
- 1) все отношение "Успеваемость";
- 2) ФИО, Дисциплина, Оценка, Дата, Преподаватель тех студентов, которые не имеют однофамильцев;
- 3) все отношение "Успеваемость", отсортированное по полю ФИО_студента;
- 4) список всех студентов из отношения "Успеваемость".
174
- Файлы отчетов в СУБД DBASE имеют расширение:
- 1) PRG; 2) DBF; 3) FRM; 4) RDX.
- Команды, обеспечивающие поиск записей в СУБД DBASE:
- 1) Find, locate, seek; 2) Find, locate, quit;
- 3) Locate, seek, index; 4) Use, locate, index.
- Чтобы изменить структуру или шаблон формы в СУБД Access, нужно открыть форму в режиме:
- 1) таблицы; 2) конструктора; 3) формы; 4) предварительного просмотра.
- В СУБД Access допустимы типы полей записей:
- 1) числовой, символьный, графический, музыкальный;
- 2) логический, дата, числовой, денежный, OLE;
- 3) числовой, текстовый, гипертекстовый, логический;
- 4) числовой, символьный, Memo, дата, логический, массив.
- В поле OLE (СУБД Access) можно разместить:
- 1) файл; 2) число; 3) ссылку на другую таблицу; 4) калькулятор.
- Группа пиктограмм, главное назначение которой - ускоренный вызов команд меню в СУБД Access, - это:
- 1) полоса меню; 2) строка состояния;
- 3) панель инструментов; 4) вкладки объектов.
- Служебные слова order by <атрибут> asc определяют в SQL:
- 1) сортировку результата выборки в порядке возрастания;
- 2) сортировку результата выборки в порядке убывания;
- 3) группировку данных по значениям;
- 4) подсчет количества записей в таблице.
- Команда выборки в SQL может содержать слова:
- 1) select, from, where; 2) order by, group by;
- 3) having set, minus; 4) все перечисленные в 1 - 3.
Электронные таблицы
- Основное отличие электронных таблиц от реляционных БД:
- 1) приспособленность к расчетам; 2) структуризация данных;
- 3) табличное представление данных; 4) свойства, перечисленные в 1, 2.
- SuperCalc, QuattroPro, Excel - это:
- 1) графические редакторы; 2) СУБД;
- 3) текстовые редакторы; 4) электронные таблицы.
- В ячейку электронной таблицы нельзя ввести:
- 1) текст; 2) формулу; 3) иллюстрацию; 4) число.
- Операндами формулы в электронных таблицах могут быть:
- 1) математические функции; 2) константы;
- 3) номера ячеек; 4) все перечисленное в 1-3.
- Табличный процессор SuperCalc написан для среды:
- 1) DOS; 2) Windows;
- 3) Unix; 4) операционные системы, перечисленные в 1 - 3.
- Пользователь может сортировать в электронной таблице:
- 1) клетки; 2) строки клеток;
- 3) столбцы клеток; 4) все перечисленное в 1 - 3.
- Электронные таблицы SuperCalc имеют по умолчанию стандартное расширение:
- 1) Dbf; 2) Cal;
- 3) Htm; 4) Elt.
175
- Электронные таблицы SuperCalc:
- 1) могут создавать базы данных;
- 2) имеют простейшие средства, характерные для БД;
- 3) располагают средствами для перевода информации к виду, доступному из текстовых редакторов;
- 4) располагают возможностями 1-3.
- Абсолютный адрес в электронных таблицах SuperCalc - это:
- 1) расстояние от клетки, содержащей формулу, до клетки, на которую в ней имеется ссылка;
- 2) диапазон клеток, содержащих макрос;
- 3) адрес, в котором не перенастраиваются номера строк и столбцов;
- 4) полный адрес, указывающий номера строки и столбца клетки.
- DENTRY, LEARN и DIRECT в электронных таблицах SuperCalc-это:
- 1) команды; 2) режимы создания макросов;
- 3) операнды; 4) служебные слова.
- Рабочая страница в электронной таблице Excel содержит:
- 1) программное окно; 2) внутреннее окно;
- 3) нижнее окно; 4) правое окно.
- Graph-Type, Time-Labs, Var-Labs в электронной таблице SuperCalc - это:
- 1) команды графического меню; 2) режимы создания макросов;
- 3) операнды; 4) типы переменных.
- Ввод повторяющегося текста в электронной таблице SuperCalc начинается со знака:
- 1) ":"; 2) ""; 3) "-"; 4) "/".
- Сортировка таблицы в SuperCalc осуществляется с помощью команды:
- 1) Arrange; 2) Sort; 3) Format; 4) Protect.
- Команда Alt + А в электронных таблицах SuperCalc:
- 1) фиксирует заголовок таблицы;
- 2) завершает сеанс работы с программой;
- 3) запускает на выполнение макрос \a;
- 4) записывает макрос \a.
- Создание формулы в электронной таблице Excel начинается с ввода знака:
- 1) ":"; 2) "="; 3) "/"; 4) "\".
Инструментальные ПС и интегрированные пакеты
- MS Works - это:
- 1) ПС специального назначения; 2) экспертная система;
- 3) интегрированный пакет; 4) авторская система.
- MATHCAD - это:
- 1) прикладная программа; 2) экспертная система;
- 3) ПС общего назначения; 4) интегрированная система.
- REDUCE - этo:
- 1) ПС общего назначения; 2) ПС специального назначения;
- 3) ПС профессионального уровня; 4) интегрированный пакет.
- Отличием интегрированных пакетов от специализированных инструментальных программных средств является:
- 1) единый интерфейс всех ПС; 2) наличие табличного процессора;
- 3) ограниченность команд обработки БД; 4) свойства 1 и 3.
176
- Система REDUCE позволяет:
- 1) проводить вычисления в аналитическом виде;
- 2) производить численные операции;
- 3) решать обе вышеперечисленные задачи;
- 4) работать с электронными таблицами.
- Если переменной не присвоено какое-либо значение в системе REDUCE, то:
- 1) ее значением становится ее имя; 2) ей присваивается ноль;
- 3) ей присваивается пустое множество; 4) такая ошибка недопустима.
- Документ пакета MATHCAD может совмещать:
- 1) текст и формулы;
- 2) графики и формулы;
- 3) текст, графики и формулы;
- 4) либо текст, либо графики и формулы.
- Чтобы получитьсимвольный вывод значения переменной, функции, выражения в среде MATHCAD, нужно закончить выражение знаком:
- 1) "="; 2) "стрелка вправо"; 3) ":"; 4) "<=>".
- Для перехода в главное меню системы MS Works нужно:
- 1) нажать клавишу Alt; 2) набрать команду Menu;
- 3) нажать клавишу F10; 4) применить один из способов - 1 или 3.
- Для выхода из текстового редактора системы MS Works нужно:
- 1) нажать клавишу Esc; 2) нажать клавишу F10;
- 3) нажать комбинацию клавиш Alt + X; 4) нажать клавишу X.
- В электронных таблицах системы MS Works формулы начинаются со знака:
- 1) "!"; 2) " = ";
- 3) "#"; 4) "/".
- Запуск программы на выполнение в системе REDUCE осуществляется:
- 1) командой Run; 2) клавишей "#";
- 3) комбинацией символов "(" и ")"; 4) клавишами Ctrl + F9.
- Кнопка m..n 1-й палитры пакета MATHCAD служит для:
- 1) задания размерности матриц;
- 2) задания границ интегрирования;
- 3) табуляции функций и выражений;
- 4) задания количества строк и столбцов электронной таблицы.
- Для того чтобы результат выражения вывести на экран в системе REDUCE, нужно закончить его символом:
- 1) ":"; 2) ";"; 3) "="; 4) "#".
- Чтобы обратить матрицу А в системе MATHCAD, нужно набрать:
- 1) АА-1=; 2) inv А; 3) A-1=; 4) matr-l(A).
- Для перехода к следующей записи в СУБД системы MS Works нужно нажать:
- 1) Shift + Tab; 2) Ctrl + PgDn; 3) Tab; 4) способами 2 и 3.
- Выберите листинг следующей программы в системе REDUCE:
A:=S# A; A:=X*Y# A; Q:=X:=Y# Q; X; (и)
- l)A=S A=X2*Y Q=X=Y u=0; 2) S X*Y Y Y;
- 3) S X*Y X=Y Y; 4) u=o.
- Стандартная форма отчета СУБД системы MS Works позволяет вычислять для полей следующие значения:
- 1) сумма;
- 2) сумма, минимальное значение;
- 3) сумма, минимальное значение, максимальное значение;
- 4) сумма, минимальное значение, максимальное значение, среднее значение.
177
- Следующий оператор в системе MATHCAD root(t - cosh(t), t)= выдаст на выходе:
- 1) производную выражения t - cosh(t) по переменной t;
- 2) корень степени t из выражения t - cosh(t);
- 3) численное решение уравнения t - cosh(t) = 0;
- 4) корни уравнения t - cosh(t) = t.
Компьютерное тестирование
- Компьютерное тестирование - это:
- 1) процесс выставления оценки знаний учащегося;
- 2) процесс оценки соответствия личностной модели знаний и экспертной модели знаний;
- 3) процесс оценки компетентности преподавателя;
- 4) процесс выяснения соотношения объемов усвоенного и неусвоенного материала.
- Набор взаимосвязанных тестовых заданий, позволяющих оценить уровень соответствия знаний ученика экспертной модели знаний предметной области, - это:
- 1) тест; 2) тестовое пространство;
- 3) тестовая программа; 4) база данных тестовых заданий.
- Класс эквивалентности - это:
- 1) множество тестовых заданий по всем модулям экспертной модели знаний;
- 2) множество тестовых заданий, таких, что выполнение одного из них учеником гарантирует выполнение других;
- 3) множество тестовых заданий, имеющих одинаковое время выполнения;
- 4) множество тестовых заданий из одного раздела темы.
- Какая из перечисленных форм представления тестовых заданий наиболее неудобна для компьютерного тестирования:
- 1) закрытая; 2) открытая; 3) с фасетом; 4) задание на соответствие?
- Тестовая оболочка - это:
- 1) внешний вид тестовой программы, служащий для обеспечения диалога с тестируемым;
- 2) информационная структура, хранящая всю базу тестовых заданий;
- 3) программа, создающая компьютерные тесты, формируя базу данных из набора тестовых заданий;
- 4) файл, в котором сохраняются ответы тестируемого.
- Выбор типов тестов определяется:
- 1) особенностями инструментальных тестовых программ;
- 2) особенностями предметной области;
- 3) опытом и мастерством экспертов;
- 4) факторами, перечисленными в пп. 1 - 3.
Компьютерные игры
- Компьютерные игры, основанные на управлении игровыми объектами, называются:
- 1) играми на мастерство; 2) азартными играми; 3) логическими играми; 4) обучающими играми.
- Компьютерные игры, содержащие стратегию поведения игрока, называются:
- 1) играми на мастерство; 2) азартными играми;
178
- 3) логическими играми; 4) обучающими играми.
- Компьютерные игры, в которых исход в большей степени зависит от случайности, называются:
- 1) играми на мастерство; 2) азартными играми; 3) логическими играми; 4) обучающими играми.
- К компьютерным играм на мастерство не относятся:
- 1) футбол; 2) звездные войны; 3) тетрис; 4) шахматы.
- К логическим компьютерным играм не относятся:
- 1) шахматы; 2) крестики-нолики; 3) сапер; 4) покер.
- К логическим компьютерным играм на мастерство не относятся:
- 1) покер; 2) "поле чудес"; 3) карате; 4) шахматы.
- Отображение всех перемещений и изменений на экране дисплея в компьютерной игре является результатом действия:
- 1) оперативного уровня игры; 2) тактического уровня игры;
- 3) стратегического уровня игры; 4) технического уровня игры.
- Изменение сложности компьютерной игры, темпа, уровня происходят на этапе:
- 1) оперативного уровня игры; 2) тактического уровня игры;
- 3) стратегического уровня игры; 4) технического уровня игры.
Компьютерные вирусы
- Антивирусные средства предназначены:
- 1) для тестирования системы;
- 2) для защиты программ от вируса;
- 3) для проверки программ на наличие вируса и их лечения;
- 4) для мониторинга системы.
- Какое из следующих качеств необязательно присуще программе-вирусу:
- 1) самостоятельно запускается;
- 2) присоединяет свой код к кодам других программ;
- 3) занимает малый объем памяти;
- 4) приводит к потере информации.
- Не существует следующего понятия:
- 1) антивирусное средство "сторож"; 2) антивирусное средство "фаг";
- 3) сетевой вирус; 4) загрузочно-файловый вирус.
- В классификации компьютерных вирусов нет разновидности:
- 1) драйверные вирусы; 2) файловые вирусы;
- 3) загрузочно-драйверные вирусы; 4) загрузочно-файловые вирусы.
- Какая из ниже перечисленных программ не является антивирусным средством:
- 1) Aidstest; 2) Doctor Web;
- 3) VSAFE; 4) Vsearch.
- Вирусы, которые в простейшем случае заражают пополняемые файлы, но могут распространяться и через файлы документов, - это:
- 1) файловые вирусы; 2) загрузочно-файловые вирусы;
- 3) это качество вирусов и 1, и 2; 4) драйверные вирусы.
- Вирусы, запускающие себя путем включения в файл конфигурации дополнительной строки, называются:
- 1) файловые вирусы;
- 2) загрузочно-файловые вирусы;
- 3) сетевые вирусы;
- 4) драйверные вирусы.
179
- Вирусы, заражающие программу начальной загрузки компьютера, хранящуюся в загрузочном секторе дискеты или винчестера и запускающиеся при загрузке компьютера, - это:
- 1) загрузочные вирусы; 2) загрузочно-файловые вирусы;
- 3) это качество вирусов и 1, и 2; 4) драйверные вирусы.
- Антивирусная программа, контролирующая возможные пути распространения программ-вирусов и заражения компьютеров, называется:
- 1) детектором; 2) фагом; 3) сторожем; 4) ревизором.
- Антивирусное средство, способное только обнаруживать вирус, называется:
- 1) детектором; 2) фагом;
- 3) сторожем; 4) ревизором.
- Резидентная программа, постоянно находящаяся в памяти компьютера и контролирующая операции, связанные с изменением информации на магнитных дисках, называется:
- 1) детектором; 2) фагом; 3) сторожем; 4) ревизором.
180
167 :: 168 :: 169 :: 170 :: 171 :: 172 :: 173 :: 174 :: 175 :: 176 :: 177 :: 178 :: 179 :: 180 :: Содержание
180 :: 181 :: 182 :: Содержание
Правильные ответы
Операционные системы
№ | 1 | 2 | 3 | 4 | № | 1 | 2 | 3 | 4 |
1 | X | 13 | X | ||||||
2 | X | 14 | X | ||||||
3 | X | 15 | X | ||||||
4 | X | 16 | X | ||||||
5 | X | 17 | X | ||||||
6 | X | 18 | X | ||||||
7 | X | 19 | X | ||||||
8 | X | 20 | X | ||||||
9 | X | 21 | X | ||||||
10 | X | 22 | X | ||||||
11 | X | 23 | X | ||||||
12 | X | 24 | X |
Системы программирования
№ | 1 | 2 | 3 | 4 | № | 1 | 2 | 3 | 4 |
1 | X | 7 | X | ||||||
2 | X | 8 | X | ||||||
3 | X | 9 | X | ||||||
4 | X | 10 | X | ||||||
5 | X | 11 | X | ||||||
6 | X | 12 | X |
180
Текстовые редакторы и издательские системы
№ | 1 | 2 | 3 | 4 | № | 1 | 2 | 3 | 4 |
1 | X | 11 | X | ||||||
2 | X | 12 | X | ||||||
3 | X | 13 | X | ||||||
4 | X | 14 | X | ||||||
5 | X | 15 | X | ||||||
6 | X | 16 | X | ||||||
7 | X | 17 | X | ||||||
8 | X | 18 | X | ||||||
9 | X | 19 | X | ||||||
10 | X | 20 | X |
Графические системы
№ | 1 | 2 | 3 | 4 |
1 | X | |||
2 | X | |||
3 | X | |||
4 | X | |||
5 | X | |||
6 | X | |||
7 | X | |||
8 | X | |||
9 | X | |||
10 | X | |||
11 | X |
Системы управления базами данных
№ | 1 | 2 | 3 | 4 | № | 1 | 2 | 3 | 4 |
1 | X | 14 | X | ||||||
2 | X | 15 | X | ||||||
3 | X | 16 | X | ||||||
4 | X | 17 | X | ||||||
5 | X | 18 | X | ||||||
6 | X | 19 | X | ||||||
7 | X | 20 | X | ||||||
8 | X | 21 | X | ||||||
9 | X | 22 | X | ||||||
10 | X | 23 | X | ||||||
11 | X | 24 | X | ||||||
12 | X | 25 | X | ||||||
13 | X |
Электронные таблицы
№ | 1 | 2 | 3 | 4 | № | 1 | 2 | 3 | 4 |
1 | X | 9 | X | ||||||
2 | X | 10 | X | ||||||
3 | X | 11 | X | ||||||
4 | X | 12 | X | ||||||
5 | X | 13 | X | ||||||
6 | X | 14 | X | ||||||
7 | X | 15 | X | ||||||
8 | X | 16 | X |
181
Инструментальные ПС и интегрированные пакеты
№ | 1 | 2 | 3 | 4 | № | 1 | 2 | 3 | 4 |
1 | X | 11 | X | ||||||
2 | X | 12 | X | ||||||
3 | X | 13 | X | ||||||
4 | X | 14 | X | ||||||
5 | X | 15 | X | ||||||
6 | X | 16 | X | ||||||
7 | X | 17 | X | ||||||
8 | X | 18 | X | ||||||
9 | X | 19 | X | ||||||
10 | X |
Компьютерное тестирование
№ | 1 | 2 | 3 | 4 | № | 1 | 2 | 3 | 4 |
1 | X | 4 | X | ||||||
2 | X | 5 | X | ||||||
3 | X | 6 | X |
Компьютерные игры
№ | 1 | 2 | 3 | 4 |
1 | X | |||
2 | X | |||
3 | X | |||
4 | X | |||
5 | X | |||
6 | X | |||
7 | X | |||
8 | X |
Компьютерные вирусы
№ | 1 | 2 | 3 | 4 | № | 1 | 2 | 3 | 4 |
1 | X | 7 | X | ||||||
2 | X | 8 | X | ||||||
3 | X | 9 | X | ||||||
4 | X | 10 | X | ||||||
5 | X | 11 | X | ||||||
6 | X |
182
180 :: 181 :: 182 :: Содержание
183 :: 184 :: Содержание
Глава 3
ЯЗЫКИ И МЕТОДЫ ПРОГРАММИРОВАНИЯ
В данном разделе практикума приведены материалы для проведения занятий по программированию на различных языках высокого уровня. Не исключено, что, наряду с данным практикумом, в учебном процессе по этому разделу могут использоваться сборники задач по программированию, которых (по крайней мере, по традиционным методологиям программирования) имеется большое число.
Хотя основу практикума по этому разделу составляют лабораторные работы, на которых студенты самостоятельно разрабатывают и реализуют (пользуясь консультациями преподавателей) программы на компьютере, это не исключает проведения семинарских занятий, на которых отрабатываются навыки решения типовых задач. Опыт показывает, что для многих студентов занятия по принципам алгоритмизации и программирования в аудитории, без компьютера, полезны и даже необходимы. Заметим в связи с этим, что в название раздела включено слово "методы" (а не просто "языки программирования"). Этим подчеркивается важность освоения именно методов разработки алгоритмов и программ, а не только кодирования на том или ином языке.
Основу практикума составляет программирование на трех языках: Паскаль, Си и Пролог. Наиболее полно отражен Паскаль, что соответствует его реальной роли в подготовке учителей информатики и ряду других специальностей. На базе Паскаля предполагается отработка навыков по объектно-ориентированному программированию. На уровне получения начальных практических навыков реализован практикум по Си и Прологу. В то же время, в практикум не включены разделы по программированию на языках Бейсик и ЛИСП, описанных в базовом учебном пособии.
Вопрос о целесообразности проведения практикума по языку Бейсик, формам и объему этого практикума следует рассматривать в контексте постановки изучения программирования в конкретном вузе. Роль Бейсика в профессиональном программировании в настоящее время невелика (достаточно популярный объектно-ориентированный Visual Basic, по существу, есть иной язык). Чаще всего на Бейсик отпускается лишь немного времени для ознакомления (либо эта тема полностью исключается или переносится на самостоятельное изучение). Учитывая, что языки Бейсик (в его современных версиях типа QBasic) и Паскаль нацелены на решение достаточно схожего круга прикладных задач, весьма объемный практикум по Бейсику с решением задач и выполнением лабораторных работ может быть при желании организован с помощью заданий, приведенных в разделе по Паскалю.
Язык ЛИСП, реализующий принципиально иную, нежели Паскаль, парадигму программирования, в принципе заслуживает ознакомления, что и имели в виду авторы базового учебного пособия, включив в него соответствующую главу. Однако на практическое освоение этого языка при подготовке студентов той
183
категории, которой адресован практикум, обычно не остается времени. Соответствующих требований нет и в государственных образовательных стандартах.
Важную роль в данном разделе практикума играет тема "Методы и искусство программирования". Именно на классических задачах поиска и сортировки и построения рекурсивных алгоритмов традиционно оттачиваются практические навыки будущего программиста в сфере алгоритмизации и программирования. Вопрос о том, на каких языках реализовывать соответствующие программы, вторичен. В данном случае это могут быть и Паскаль, и Си, и Бейсик.
184
183 :: 184 :: Содержание
184 :: Содержание
§ 1. ПАСКАЛЬ КАК ЯЗЫК
СТРУКТУРНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Рекомендации по проведению занятий
Паскаль чаще всего является основным языком, изучаемым в ходе подготовки учителей информатики. Это обусловливает особую роль в проведении лабораторно-практических занятий по программированию на Паскале. Если в отношении других языков ставятся в основном ознакомительные цели, то при освоении Паскаля требуется выработка устойчивых практических навыков программирования.
Это обусловливает и организацию занятий. Они включают практические (групповые) семинарские занятия, на которых отрабатываются навыки реализации типовых алгоритмов; для этой деятельности и для домашних заданий необходимо некоторое число традиционных задач. Не все эти задачи становятся объектом отладки на компьютере, поскольку это требует немалого времени.
По отдельным темам обычно проводятся контрольные работы, для которых также нужны задания. Следует отметить, что указанные оценки продолжительности выполнения контрольных работ, приведенные ниже, весьма условны. Они исходят из полного выполнения всех приведенных заданий и отладки программ на ЭВМ; и то, и другое необязательно, и реальный состав задания определяется преподавателем. Часть этих заданий может быть использована на лабораторных работах.
Практически полностью самостоятельная работа студентов, во время которой преподавателю отводится роль консультанта, реализуется в ходе выполнения лабораторных работ. Для этих работ необходимы наборы индивидуальных заданий, предусматривающих разработку типовых алгоритмов и программирование, с отладкой (и, в случае целесообразности, тестированием) программ, проведением по ним расчетов. Такие задания даются ниже по основным темам.
Практикум тесно привязан к базовому учебнику. В силу этого, иногда при разборе упражнений практикуются ссылки на программы, приведенные в учебнике.
184
184 :: Содержание
184 :: 185 :: 186 :: 187 :: 188 :: 189 :: 190 :: 191 :: 192 :: 193 :: Содержание
Краткие сведения
Паскаль-программа является текстовым файлом с собственным именем и с расширением.pas. Схематически программа представляется в виде последовательности восьми разделов:
- Заголовок программы.
- Описание внешних модулей, процедур и функций.
- Описание меток.
184
- Описание констант.
- Описание типов переменных.
- Описание переменных.
- Описание функций и процедур.
- Раздел операторов.
185
Основные операторы языка
Реализация последовательности действий (структуры следования) выполняется с помощью составного оператора:
begin <последовательность операторов> end;
Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Первый выглядит так:
if <логическое выражение> then <оператор1> else <onepaтop2>; или
if <логическое выражение> then <onepa-rop>;.
Оператор варианта имеет следующую форму:
case <выражение> of
- <список констант 1>: <оператор 1>;
- <список констант 2>: <оператор 2>;
- ................................................
- <список константN>: <оператор N>
end;.
Для реализации циклов в Паскале имеются три оператора.
Цикл с предусловием:
while <логическое выражение> do <оператор>;.
Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается.
Цикл с постусловием:
- repeat
- <последовательность операторов>
- until <логическое выражение>;
Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения. Если оно равно true, то действие заканчивается, иначе снова выполняется последовательность операторов и т.д.
Цикл с параметром:
for <параметр>:= <выражение 1> to <выражение 2> do <оператор>
Параметр, выражение 1, выражение 2 должны быть одного ординального типа. Параметр в этом цикле возрастает.
for <параметр>:=<выражение 1> downto <выражение 2> do <оператор>.
Параметр в этом цикле убывает.
186
Структуры данных
Простые типы
К ним относятся:
- real - вещественный;
- integer - целый;
- boolean - логический;
- byte - байтовый;
- char - символьный.
Перечисляемые и интервальные типы данных задаются с помощью простых типов. Описание перечисляемого типа выполняется в разделе типов по схеме:
type <имя типа> = <список имен>
Примеры:
type operator=(plus,minus,multi,divide);
color=(white,red,blue,yellow,purple,green);
Интервальный тип - это подмножество другого уже определенного простого типа, называемого базовым. Пример:
type days = (mon,tue,wed,thu,fri,sat,sun);
workdays = mon..fri;
index = 1..30;
letter = a..z ;
Можно задать интервал и в разделе переменных:
var a:l..100; b: -25..25;.
Составные типы
Массив - это последовательность, состоящая из фиксированного числа однотипных элементов:
type <имя типа> = array <список типов индексов> of <тип элементов>.
Число типов индексов называется размерностью массива. После описания типа массива конкретные массивы можно задать в разделе описания переменных, например:
type vector = array [1..10] of real;
table = array [A..Z,1..5] of integer;
var a,b: vector;
с: table;
Описание массива-типа можно совместить с описанием соответствующих переменных:
var a,b: array [1..10] of real;
d: array [byte] of char;.
Строковый тип определяется в разделе описания типов, переменные этого типа - в разделе описания переменных:
type word: string[20];
var a,b,c: word;
или
187
var a,b,c: string[20];
d: string[30];
Для строковых величин определены четыре стандартные функции:
- Функция соединения - concat (s 1, s 2,..., s k).
- Функция выделения - copy(s, i, k). Из строки s выделяется k символов, начиная с i-гo символа.
- Функция определения длины строки - length (s).
- Функция определения позиции - pos(s,t). Вычисляется номер позиции, начиная с которой строка s входит первый раз в строку t; результат равен 0, если строка 5 не входит в t.
Также определены четыре стандартные процедуры для обработки строковых величин:
- Процедура удаления - delete (s, i, k). Из строки s удаляется k символов, начиная с i-гo символа.
- Процедура вставки - insert(s, t, i). Строка s вставляется в строку t, начиная с позиции i.
- Процедура преобразования числа в строку символов - str(k, s).
- Процедура преобразования строки из цифр в число - val(s, k, i).
Множественный тип можно определить в разделе описания типов по схеме:
type <имя> = set of <тип элементов>. Например:
type t = set of byte;
var а: t;
или
var code: set of 0..7;
digits: set of 0..9 ;
Для данных множественного типа определены операции объединения, пересечения и дополнения множеств, обозначаемые соответственно знаками +, * и -, а также отношения равенства множеств (A = B), неравенства (A<>B), включения (A <= В, А >= В). Логическая операция принадлежности: x in А принимает значение true, если элемент x принадлежит множеству A и false в противном случае.
Запись - это последовательность, состоящая из фиксированного числа величин разных типов, называемых полями или компонентами записи:
type имя типа записи = record
имя поля 1: тип;
имя поля 2: тип;
............
имя поля N: тип
end;
Например, адресные данные (индекс, город, улица, номер дома, квартиры) можно представить как запись:
type address = record
index: string[6];
city: string[20];
street: string[20];
haus,flat: integer
end;
188
Подпрограммы
В Паскале подпрограммы называются процедурами и функциями.
Процедура имеет такую же структуру, как и программа, но с двумя отличиями:
1) заголовок процедуры имеет другой синтаксис:
procedure <имя> (<список описаний формальных параметров>)
2) описание процедуры заканчивается точкой с запятой (а не точкой). Оператор вызова процедуры имеет вид
<имя процедуры> (<список выражений>);
Функция - это подпрограмма, определяющая единственное скалярное, вещественное или строковое значение. Отличия подпрограммы-функции от процедуры:
1) заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции:
function <имя> (<cписок описаний формальных параметров>): <тип>;
2) раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;
3) обращение к функции ~ не оператор, а выражение. Функции и процедуры могут быть рекурсивными.
В Паскале имеются две встроенные процедуры ввода:
- 1) read <список переменных>;
- 2) readln <список переменных>.
Имеются две процедуры вывода на экран дисплея:
- 1) write <список выражений>;
- 2) writeln <список выражений>.
Модули
Модуль - это набор констант, типов данных, переменных, процедур и функций. Используется для создания библиотек и разделения больших программ на логически связанные не зависимые друг от друга составные части. В состав модуля входят следующие разделы: заголовок, интерфейс, реализация, инициализация. Заголовок необходим для ссылок на модуль. Интерфейс содержит объявления, включая процедуры и функции, представленные списком заголовков и доступные пользователям в теле основной программы. Раздел <реализация> содержит тела процедур и функций, перечисленных в интерфейсной части модуля. Раздел <инициализация> содержит операторы, необходимые для инициализации модуля.
Каждый модуль компилируется отдельно; результат компиляции - файл с расширением.tpu (TurboPascalUnit). Каждый элемент модуля можно использовать в программе пользователя без дополнительного объявления, для чего достаточно записатьимя используемого модуля в директиве Uses в начале программы после его заголовка: uses <имя модуля>
Файлы
Для связи Паскаль-программы с внешними устройствами используют файловые переменные. Связь осуществляется оператором языка Паскаль:
assign (<имя файловой переменной>,<имя устройства>).
189
Например:
assign (f, primer.dat)
Здесь f - имя файловой переменной, primer.dat - имя файла данных на внешнем носителе.
Если внешним устройством является принтер, то связь осуществляется оператором assign(f, lst:). Здесь lst - логическое имя печатающего устройства.
Ниже приведены логические имена внешних устройств ввода-вывода:
- con: консоль; trm: терминал;
- kbd: клавиатура; 1st: принтер;
- aux: буферсети; usr: драйвер пользователя.
После осуществления связи файловая переменная/отождествляется с соответствующим файлом.
Для работы с файлом его необходимо открыть, по окончании работы - закрыть. Файл открывается для чтения оператором reset(f), для записи - оператором rewrite(f). Чтение и записьданных осуществляется известными процедурами read/write, только в начале списка помещается имя файловой переменной:
read (f, <список ввода>); readln (f, <список ввода>);
write(f, <список вывода>); writeln(f, <список вывода>).
Закрытие файла осуществляется командой close (f). Команда reset(f) устанавливает указатель маркера файла на нулевое состояние.
В системе Турбо-Паскаль предусмотрены встроенные функции по работе с файлами:
- filesize (f) - возвращает текущее число компонент открытого файла;
- filepos (f) - возвращает номер текущей позиции маркера;
- rename (f, имя) - переименование файла, связанного с /;
- erase (f) - уничтожение файла;
- execute (f) - выполнение СОМ-файла;
- chain(f) - выполнение СНN-файла;
- seek (f, N) - устанавливает маркер на позицию N;
- eof(f) - возвращает TRUE, если найден конец файла;
- ealn(f) - возвращает TRUE, если найден конец строки.
Файловый тип данных в программе задается по следующему правилу:
type <имя файлового типа> = file of <тип компонентов>.
В качестве типа компонент файла разрешается использовать любой тип данных, кроме файлового. Например:
type intfile = file of integer;
Динамические переменные и указатели
Переменные ссылочного типа (указатели) вводятся в употребление обычным путем с помощью их описания в разделе переменных.
Значением указателя является адрес ячейки, начиная с которой будет размещена в памяти соответствующая динамическая величина.
Задание ссылочного типа выполняется по схеме:
type <имя ссылочного типа> = ^ <имя типа динамической величины> (значок ^ указывает на то, что величина является динамической).
190
Например:
type p = ^integer;
q = ^record
x: integer;
y: string [20]
end;
В некоторых случаях возникает необходимость в качестве значения указателя принять "пустую" ссылку nil, которая не связывает с указателем никакого объекта и принадлежит любому ссылочному типу.
Для порождения динамического объекта, на который указывает ссылочная переменная i, служит стандартная процедура new(i). Имя ссылочной переменной с последующим символом ^ называют "переменной с указателем". Именно она синтаксически выполняет роль динамической переменной и может быть использована в любых конструкциях языка, где допустимо использование переменных того типа, что и тип динамической переменной.
Процедура dispose(i) уничтожает порожденные динамические объекты.
Графика
Графические возможности реализованы с помощью стандартного модуля Graph.tpu. Подключение модуля к программе выполняется директивой uses graph. Процедура инициализации графического режима имеет три аргумента:
Initgraph(<драйвер>, <режим>, <путь к драйверу>)
и может быть выполнена так:
uses graph;
var gd, gm: integer;
{переменные gd и gm определяют драйвер и режим}
begin
gd:=vga; gm:=vgahi;
initgraph(gd, gm, d:\tp55);
Первые две команды можно заменить одной: gd:=detect с целью автоматического распознавания драйвера и установления режима максимального разрешения для данной машины.
Процедура closegraph освобождает память от драйвера и устанавливает режим работы экрана, который был до инициализации графики.
Для обнаружения ошибок в графике применяются функции graphresult и grapherrormsg (код ошибки). Инициализация графического режима с проверкой ошибок может быть выполнена в программе следующим образом:
uses graph; var gd, gm, errorcod: integer;
begin
gd:=detect; initgraph(gd, gm, ); errorcod:=graphresult;
if errorcod <> grok then
begin
writeln(ошибка графики);
writeln(grapherrormsg(errorcod));
halt
end;
191
Процедура halt останавливает выполнение программы и возвращает управление операционной системе.
Параметр "цвет" в процедурах работы с палитрой является выражением целого типа со значением из интервала 0..15, в частности, может быть константой из приведенного списка:
Black | = 0 (черный) | Darkgray | = 8 (темно-серый) |
Blue | = 1 (синий) | Lightblue | = 9 (светло-синий) |
Green | = 2 (зеленый) | Lightgreen | = 10 (светло-зеленый) |
Cyan | = 3 (голубой) | Lightcyan | = 11 (светло-голубой) |
Red | = 4 (красный) | Lightred | = 12 (светло-красный) |
Magenta | = 5 (малиновый) | Lightmagenta | = 13 (светло-малиновый) |
Brown | = 6 (коричневый) | Yellow | = 14 (желтый) |
Lightgray | = 7 (светло-серый) | White | = 15 (белый). |
Процедуры setcolor(<цвет>) и setbkcolor(<цвет>) устанавливают текущий цвет рисунка и цвет фона. При инициализации графики по умолчанию устанавливается черный фон и белый цвет рисунка.
Таблица 3.1
Основные процедуры модуля Graph
Заголовок процедуры | Геометрический смысл |
putpixel (x, у, с) | Построить точку (х,у) цветом с |
setlinestyle (a,b, t) | Установить стиль, образец и толщину линий |
line (x1, y1, x2, y2) | Соединить две точки отрезком |
rectangle (xl, yl, x2, y2) | Прямоугольник с заданными концами диагонали и сторонами, параллельными осям координат |
circle (х, у, r ) | Построить окружность с центром (х,у) и радиусом R |
arc (х, y, a, b, r) | Построить дугу окружности: a, b - начальный и конечный углы в градусах |
ellipse (х, у, a, b, rx, ry) | Построить эллиптическую дугу: rх, rу- полуоси эллипса |
setfillstyle (t, с) | Установить стиль закраски и ее цвет |
fillellipse(x, y, rx, ry) | Построить закрашенный эллипс, используя цвет рисунка |
floodfill (х, у, cg) | Закрасить фигуру до границы с цветом cg; (х,у) - внутренняя точка фигуры |
bar (xl, yl, x2, y2) | Построить столбец, используя тип и цвет закраски |
pieslice (x, y, a, b, r) | Построить и закрасить сектор круга: a, b - начальный и конечный углы дуги в градусах |
sector(x, y, a, b, rx, ry) | Построить и закрасить эллиптический сектор |
settextstyle (f, n, d) | Установить шрифт, направление вывода, размер символов текста |
outtextxy(x, y, st) | Вывести строку st, начиная с точки (x,y) |
outtext (st) | Вывести строку, начиная с точки расположения текущего указателя |
setlinestyle (a, b, t) | Стиль линии |
192
Таблица 3.2 Значения первого аргумента процедуры setlinestyle(a,b,t)
Значение стиля | Смысл |
0 solidln | Непрерывная линия |
1 dotteln | Пунктирная линия |
2 centerln | Штрихпунктирная линия |
3 dashedln | Штриховая линия |
4 userbitln | Определенная пользователем |
Второй параметр b, "образец", имеет значение 4, если а = 4, в остальных случаях b = 0.
Третий параметр t, толщина линии, может иметь значение 1 (нормальная толщина) или 3 (жирная линия).
Первый аргумент процедуры setfillstyle (t, с) - тип закраски t - принимает значения из интервала 0..12. Наиболее употребителен тип t = 1 - заполнение фигуры текущим цветом.
Для вывода текста на графический экран сначала выполняется процедура settextstyle(f, n, d), устанавливающая шрифт/, направление вывода n и размер символов (параметр d). При f = 0 используется стандартный точечный шрифт, встроенный в систему Турбо-Паскаль.
193
184 :: 185 :: 186 :: 187 :: 188 :: 189 :: 190 :: 191 :: 192 :: 193 :: Содержание
193 :: Содержание
Темы семинарских занятий
- Основные конструкции языка Паскаль. Структура программы.
- Циклы. Типовые задачи реализации циклических вычислительных процессов.
- Простые типы данных. Символьный тип. Перечисляемые и интервальные типы.
- Процедуры и функции.
- Программы с рекурсивными процедурами и функциями.
- Файлы.
- Структуры данных. Массивы. Типовые задачи обработки массивов.
- Множества.
- Записи.
- Модули.
- Динамические информационные структуры.
- Графические возможности Турбо-Паскаля.
193
193 :: Содержание
193 :: Содержание
Рекомендации по программному обеспечению
Для проведения всех занятий в пределах данного практикума достаточно стандартной системы программирования Турбо-Паскаль начиная с версии 5.5 и старше.
193
193 :: Содержание
193 :: 194 :: 195 :: 196 :: 197 :: 198 :: 199 :: 200 :: 201 :: 202 :: 203 :: 204 :: 205 :: 206 :: 207 :: 208 :: 209 :: 210 :: 211 :: 212 :: 213 :: 214 :: 215 :: 216 :: 217 :: 218 :: 219 :: 220 :: Содержание
Задачи и упражнения
Основные конструкции языка
Упражнение № 1. Первое знакомство с системой программирования
Турбо-Паскаль
- Включить компьютер, запустить систему Турбо-Паскаль, познакомиться с текстовым редактором Edit.
Команды редактора Edit:
- перемещение курсора на символ вправо; | |
- перемещение курсора на символ влево; | |
- перемещение курсора на строку вверх; | |
- перемещение курсора на строку вниз; | |
- перемещение курсора в начало текущей строки; | |
- перемещение курсора в конец текущей строки; | |
- перемещение курсора на страницу вверх; | |
- перемещение курсора на страницу вниз; |
193
- перемещение курсора в левый верхний угол; | |
- перемещение курсора в левый нижний угол; | |
- включение и выключение режима вставки; | |
- удаление символа, стоящего в позиции курсора; | |
- удаление символа, стоящего перед курсором; | |
- вставка пустой строки над строкой, где находится курсор; | |
- удаление строки, где находится курсор; |
- Набрать свою фамилию, имя и отчество. В следующей строке - свой домашний адрес, номер телефона (если он есть).
- Набрать предложение: "Шла собака по роялю и сложила песню." В этом предложении заменить все буквы "о" на "е", а после каждой буквы "а" вставить букву "с".
- Очистить рабочее поле и набрать текст первой программы на Паскале.
Пример 1.
- Program Example_l;
- Var a,b,rez: Integer;
- Begin
- Writeln(Введите два числа через пробел);
- Readln(a,b);
- rez:=a*b;
- Writeln(Иx произведение равно, rez);
- Writeln(Нажмите <Enter>);
- Readln;
- End.
Пояснения к программе
Имя этой программы Example_1. Из разделов описаний имеется лишь один - раздел переменных. Он начинается со служебного слова Var, после которого идет последовательность объявления переменных. После описательной части идет раздел операторов, начинающийся со служебного слова Begin, после которого идут операторы языка. Первый встречающийся оператор - это Writeln ( текст); - записать (вывести) на экран текст, заключенный между апострофами, ln добавляется в конце этого оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текстов или результатов выполнения программы. Следующий оператор - это Readln (a,b) ; - читать данные с клавиатуры. В данном случае необходимо ввести два целых числа через пробел, тогда переменной а присваивается значение, равное первому введенному числу, а переменной b присваивается значение, равное второму введенному числу. Например, вы ввели числа 12 и 45, тогда а = 12, a b = 45. В конце этого оператора также можно ставить ln.
После этих двух операторов стоит оператор присваивания: rez:=a*b; (:= - это знак присваивания в языке Паскаль). При выполнении этого оператора переменная rez получит значение, равное произведению числа а на число b.
Следующий оператор - это снова оператор writeln(текст,rez) - он выведет на экран текст, заключенный между апострофами, а за ним значение переменной rez. Затем следующий оператор writeln выведет на экран сообщение: "Нажмите <Enter>", а оператор readln будет ожидать этого нажатия в окне
194
выполнения. В конце раздела операторов стоит служебное слово End, после которого стоит точка.
- Провести компиляцию программы командой из меню COMPILE. Добиться успешной компиляции, исправляя указанные системой ошибки.
- Запустить программу на выполнение командой из меню RUN. На экране появляется сообщение:
Введите два целых числа через пробел.
Наберите на клавиатуре два целых числа через пробел и нажмите <Enter>. После этого появляется сообщение:
Произведение равно...
Нажмите <Enter>.
Вместо точек будет написано значение переменной rez, то есть число, равное произведению первого введенного числа на второе. А теперь попробуйте выполнить следующие задания:
- а) измените программу для нахождения суммы двух чисел;
- б) измените программу для нахождения суммы четырех чисел;
- в) найдите значение выражения (а + (d - 12)3)(c - 5k), где значения переменных a, d, с и k вводятся с клавиатуры.
- Сохраните текст программы в виде файла с помощью команд File/Save as. Например: c:\priml_l.pas; здесь c:\ - это название диска, на котором будем сохранять файл.
Задания для самостоятельной работы
- Найдите периметр:
- а) прямоугольника (ширину и длину вводить с клавиатуры);
- б) треугольника (длины всех сторон вводить с клавиатуры);
- в) произвольного четырехугольника.
- Вычислите значение выражения:
- а) y= 15x2+ 8x - 9;
- б) а = (b + c)d - k.
- Вычислите рациональным способом, то есть за минимальное число операций:
- а) у = x5 (y = (x2)2x, то есть за три операции);
- б) у = x6 (y = (x3)2 = (x2x)2, то есть за три операции);
- в) у = x8 (y = ((x2)2)2, тоже за три операции).
- Найдите значение выражения:
- а) у = |x| + x4, при x = -3; x = 3;
- б) а = |x| + 4x3 - 7x2, при x = 2; x = -2;
- в) z = |x - 2| + 3х8, при x = -2; x = 1;
- г) а = 6b2 + |b - 3|3 - 15, при b = 9; b = -3.
- Напишите программу вычисления значения выражения:
- a) y = (3x3 + 18x2)x + 12x2 - 5;
- б) а = (d + с + b)e - 5k - 1;
- в) d =3с3+|с2 - 4с + 7|3 - 5с;
195
- г) с = |x + 4| - |x2 - 3x + 6|.
- Поменяйте местами значения переменных x и у:
- а) у с использованием промежуточной переменной (t:=x; x:=y; y:=t;);
- б) без использования промежуточной переменной (x:=x-y; y:=x+y; x:=y-x;).
Упражнение № 2. Целый и логический типы данных. Условный оператор
Разберите несколько примеров на использование целых и логических типов данных, условного оператора.
Пример 2. Вывести на экран большее из двух данных чисел.
- Program Example_2;
- Var x,у: Integer;
- Begin
- Writeln(Введите 2 числа);
- Readln(x,y); {вводим два целых числа через пробел}
- If x>y Then Writeln(x) {если (If)x больше у, то (Then) выводим x}
- Else Writeln(y); {иначе (Else) выводим y}
- Readln;
- End.
Пример 3. Даны целые числа a, b, с. Если abc, то все числа заменить их квадратами, если a >b >c, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа.
Решение.
Условие задачи перепишем следующим образом:
- a = a2, b = b2, с = с2, если a <= b <= с,
- а = с, b = с, если а > b > с,
- а = -a, b = -b, с = -с, в остальных случаях.
- Program Example_3;
- Var a,b,c: Integer;
- Begin
- Writeln(Введите числа a, b, с);
- Readln(a,b,с);
- If (a<=b) And (b<=c) Then
- Begin a:=sqr(a); b:=sqr(b); c:=sqr(c) End
- Else If (a>b) And (b>c) Then Begin a:=c; b:=c End
- Else Begin a:=-a; b:=-b; c:=-c End;
- Writeln (a:3,b:3,c:3);
- Readln;
- End.
Задания для самостоятельной работы
- Какими будут значения переменных j, k после выполнения условного опеpaтоpa: if j>k Then j:=k-2 Else dec(k,2); если исходные значения переменных равны a) j = 3, k = 5; б) j = 3, k = 3; в) j = 3, k = 2.
- Запишите условный оператор, в котором значение переменной вычисляется по формуле: а + b, если а - нечетное и ab, если а - четное.
196
- Вычислите значение функции:
{x2 + 5 при x > 3,
x - 8 при x 3.
- Найдите наибольшее из трех данных чисел.
- Выведите на экран номер четверти, которой принадлежит точка с координатами (x,y), при условии, что x и у отличны от 0.
- Вычислите значение функции:
{x - 12 при x >
0, 5 при х = 0,
x2 при х < 0.
- Даны три целых числа, найдите среднее из них. Средним назовем число, которое больше наименьшего из данных чисел, но меньше наибольшего.
- Напишите фрагмент программы, подсчитывающий сумму только положительных из трех данных чисел.
- Даны три числа. Напишите фрагмент программы, подсчитывающий количество чисел, равных нулю.
- После выполнения операторов
a:=0;
If a<>0 Then; a:=2
значение переменной равно двум. Объясните почему.
- Используя составной оператор, упростите следующий фрагмент программы:
If a>b Then c:=l;
If a>b Then d:=2;
If a<=b Then c:=3;
If a<=b Then d:=4.
- Составьте программу нахождения произведения двух наибольших из трех введенных с клавиатуры чисел.
- Если целое число М делится нацело на целое число N, то вывести на экран частное отделения, в противном случае - сообщение "M на N нацело не делится".
- Найдите количество положительных (отрицательных) чисел среди четырех целых чисел А, В, С и D.
- Чему равны значения переменных а и b после выполнения последовательности действий:
- а) а:= 15 Div (16 Mod 7); b:= 34 Mod a*5 - 29 Mod 5*2;
- б) а:= 4*5 Div 3 Mod 2; b:= 4*5 Div (3 Mod 2);
- в) a:= a*b; b:= b*b.
- Составьте программу, которая определяла бы вид треугольника (если данные отрезки позволяют его построить).
- Составьте программу, которая уменьшает первое число в пять раз, если оно больше второго по абсолютной величине.
- Составьте программу вычисления выражения:
- a) max(x + y + z, xyz) + 3;
- б) min(x2 + y2, y2 + z2) - 4,
197
если x, у, z введены с клавиатуры.
- Составьте программу, которая из трех введенных с клавиатуры чисел возводит в квадрат положительные, а отрицательные оставляет без изменения.
Упражнение № 3. Целый тип данных. Цикл с параметром
Пример 4. Составить программу вычисления значения выражения
у = ((...(202 - 192)2 - 182)2-...-12)2.
Решение. В данном случае целесообразно организовать цикл с параметром, изменяющимся от 20 до 1, то есть шаг изменения параметра равен -1.
Обозначим: у - очередное значение квадрата числа; n - параметр цикла. Учитывая это, составим программу:
- Program Example_4;
- Var у, n: Integer;
- Begin
- y:=sqr(20);
- For n:=19 Downto 1 Do y:=sqr(y-sqr(n));
- Writeln(Значение выражения равно);
- Writeln(у);
- End.
Пример 5. Из чисел от 10 до 99 вывести те, сумма цифр которых равна n (0 < n < 18).
Решение. Обозначим: k - это просматриваемое число, p1 - это первая цифра числа k, p2 - это вторая цифра числа k, s - это сумма цифр данного числа k. Число k будем выписывать только в том случае, когда сумма p1 и p2 будет равна s.
- Program Example_5;
- Var k, n, pl, p2, s:Integer;
- Begin
- Writeln(Введите целое число);
- Readln(n); {вводим целое число}
- For k:=10 To 99 Do (для(For) k от 10 до(То) 99 делать(Dо)}
- Begin
- p1:=k Div 10; {выделяем первую цифру}
- p2:=k Mod 10; {выделяем вторую цифру}
- s:=p1+p2; {находим сумму цифр}
- If s=n Then Writeln(k); {если сумма равна n, то выводим K}
- End;
- Readln;
- End.
Задания для самостоятельной работы
- Сколько раз будут выполнены операторы из тела циклов в следующих фрагментах программ:
- а) For k:=-l To 1 Do...
- б) For k:=10 To 20 Do...
- в) For k:=20 To 10 Do...
- г) k:=5; r:=15;
- д) For i:=k+l To r-l Do...
- e) k:=5;r:=15;
198
- ж) For i:=0 To k*r Do...
- 3) k:=r;
- и) For i:=k To r Do...
- Определите значение переменной s после выполнения следующих операторов:
s:=0; n:=10;
For i:=2 To n Do s:=s+100 Div i;
- Составьте программу возведения натурального числа в квадрат, используя следующую закономерность:
- 12= 1
- 22 = 1 + 3
- 32 = 1 + 3 + 5
- 42 = 1 + 3 + 5 + 7
- n2 = 1 + 3 + 5 + 7 + 9 +... + (2n-1)
- Определите количество трехзначных натуральных чисел, сумма цифр которых равна заданному числу N.
- Составьте программу вычисления суммы кубов чисел от 25 до 125.
- Среди двузначных чисел найдите те, сумма квадратов цифр которых делится на 13.
- Напишите программу поиска двузначных чисел, таких, что если к сумме цифр этого числа прибавить квадрат этой суммы, получится это число.
- Квадрат трехзначного числа оканчивается тремя цифрами, которые как раз и составляют это число. Напишите программу поиска таких чисел.
- Напишите программу поиска четырехзначного числа, которое при делении на 133 дает в остатке 125, а при делении на 134 дает в остатке 111.
- Найдите сумму положительных нечетных чисел, меньших 100.
- Найдите сумму целых положительных чисел из промежутка от А до В, кратных 4 (значения переменных А и В вводятся с клавиатуры).
- Найдите сумму целых положительных чисел, больших 20, меньших 100, кратных 3 и заканчивающихся на 2, 4 или 8.
Упражнение № 4. Отладка. Пошаговая детализация
- Загрузите файл c:\Example_5.pas.
- Откройте окно Watches и введите переменные pl, p2, k, s.
- Проследите работу программы в пошаговом режиме и составьте следующую таблицу для значений k от 10 до 15:
k | p1 | p2 | s |
Примечание. Для удобства следует уменьшить размеры окна Watch и поместить его в удобное для Вас место экрана.
Пример 6. Дано число п. Каким образом можно построить "перевертыш" данного числа ?
Решение. Обозначим: n - вводимое число, т - дубликат числа я, а - перевертыш числа n, i - переменная цикла для создания перевертыша.
199
- Program Example_6;
- Var n,m,a,i:Integer;
- Begin
- Writeln(Введите целое число, не большее 9999);
- Readln(n); {вводим целое число}
- m:=n; a:=0;
- {создание перевертыша}
- For i:=l To 4 Do {так как число четырехзначное}
- Begin
- a:=a*10+m Mod 10; m:=m Div 10;
- End;
- If a=n Then Writeln(ДА! ) Else Writeln ( HET! ! ! );
- {если перевертыш равен данному числу, то выводим "ДА", иначе - "НЕТ"}
- Readln;
- End.
Трассировка примера
Рассмотрим выполнение этой программы в пошаговом режиме для числа 3994. Так как значение переменной а не равно значению переменной я, то на экране появится слово "НЕТ!!!".
i | п | т | а - это перевертыш |
- | 3994 | 3994 | 0 |
1 | 3994 | 399 | 0·10 + 3994 mod 10 =0 + 4 = 4 |
2 | 3994 | 39 | 4·10 + 399 mod 10 = 40 + 9 = 49 |
3 | 3994 | 3 | 49·10 +39 mod 10 =490 + 9 = 499 |
4 | 3994 | 0 | 499·10 +3 mod 0 =4990 + 3 = 4993 |
Пример 7. Даны натуральные числа п, k (п, k9999). Из чисел от п до k выбрать те, запись которых содержит ровно три одинаковые цифры. Например, числа 0006, 0060, 6766, 5444, содержат ровно три одинаковые цифры.
Решение. Если данное число содержит ровно три одинаковых цифры, то только одна из цифр отличается от остальных, т.е. возможны четыре случая.
В первом случае отличается последняя цифра, во втором - третья, в третьем - вторая, а в четвертом - первая. Для каждого числа выполняется только одно из условий.
Фрагмент решения
1 | 2 | 3 | 4 | ||
1 | X | X | X | - первое условие | |
2 | X | X | X | - второе условие | |
3 | X | X | X | - третье условие | |
4 | X | X | X | - четвертое условие |
200
- Begin {Exaraple_7};
- Writeln(Bвeдитe два числа, не больших 9999);
- Readln(n, k); For i:=n To k Do
- Begin
- m:=i;
- {выделение цифр: al - первая, a2 - вторая,аЗ - третья, a4 четвертая}
- a4:=m Mod 10; m:=m Div 10;
- a3:=m Mod 10; m:=m Div 10;
- a2:=m Mod 10; al:=m Div 10;
- {проверка условий}
- If ((al=a2) And (al=a3) And (al<>a4)) Or
- {первое условие}
- ((al=a2) And (al=a4) And (al<>a3)) Or {второе условие}
- ((al=a3) And (al=a4) And (al<>a2)) Or {третье условие}
- ((a2=a3) And (a2=a4) And (a2<>al) {четвертое условие}
- Then Writeln(i:5);
- End;
- Readln;
- End.
Трассировка примера
Рассмотрим выполнение программы для числа 3733.
n | m | а1 | а2 | а3 | а4 |
3733 | 3733 | - | - | - | 3 |
3733 | 373 | - | - | 3 | 3 |
3733 | 37 | 3 | 7 | 3 | 3 |
Для данного числа выполняется третье условие, поэтому на экране появится число 3733.
Задания для самостоятельной работы
При решении задач следует использовать метод пошаговой отладки программы.
- Составьте программу возведения данного натурального числа а в степень п. Исследовать для различных а максимальное значение п.
- Даны натуральные числа a, b. Вычислите произведение ab, используя в программе лишь операции "+", "-", "=".
- Пусть п - натуральное число и пусть n!! означает 1 · 3 · 5 ·... · п для нечетного п и 2*4*...*n для четного п. Для заданного натурального п вычислите n!! и (-1)n+1·n!!
- Даны натуральные числа п, a1, a2,..., an
- а) определите число членов ak последовательности a1, а2,..., an, имеющих четные порядковые номера и являющихся нечетными числами;
- б) получите сумму тех чисел данной последовательности, которые удовлетворяют условию | ai| < i2;
201
- в) верно ли, что в последовательности больше отрицательных членов, чем положительных;
- г) min(a2,a4,...) + max(a1, a3,...).
- Даны натуральные n, b0, b1,...,bn Вычислите f(b0) + f(b1) +... + f(bn), где
- Дано натуральное число п. Получите все его натуральные делители.
- Даны натуральные числа т, п. Получите все кратные им числа, меньшие m · n.
- Среди четырехзначных чисел выбрать те, у которых все четыре цифры различны.
- Дано четырехзначное число п. Выбросите из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 1509 должно получиться 19.
- Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в п-ю степень, равна самому числу (например, 153 = 13 + 53 + 33). Получите все числа Армстронга, состоящие из трех и четырех цифр.
- Дана последовательность из 20 целых чисел. Определите количество чисел в наиболее длинной подпоследовательности из подряд идущих нулей.
Упражнение № 5. Циклы с условиями
Пример 8. Цикл с предусловием. Дано натуральное число п. Подсчитайте количество цифр данного числа.
Решение. Подсчет количества цифр начнем с последней цифры числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий и т.д., пока число не станет равным нулю.
- Program Example_8;
- Var m, n: Longint;
- k: Integer; {счетчик цифр}
- Begin
- Writeln(Bведитe целое число); {вводим целое число n}
- Readln(n);m:=n;
- k:=0;
- While m<>0 Do {пока число m<>0 делать(Do)}
- Begin
- Inc(k); {или k:=k+l;}
- m:=m Div 10; {"уменьшаем" число на последнюю цифру}
- End;
- Writeln(B числе,n, -,k, цифр !); {вывод количества цифр}
- Readln;
- End.
Трассировка программы
Рассмотрим выполнение этой программы в пошаговом режиме для числа 65387.
202
В результате работы программы на экране появится предложение:
В числе 65387 - 5 цифр !
т | ь | k |
65387 | 65387 | 0 |
65387 | 6538 | 1 |
65387 | 653 | 2 |
65387 | 65 | 3 |
65387 | 6 | 4 |
65387 | 0 | 5 |
Пример 9. Дана непустая последовательность натуральных чисел, за которой следует 0. Составить программу поиска в данной непустой последовательности порядкового номера наименьшего элемента.
Решение. Обозначим через x, i - очередной член последовательности и его номер; min, k - минимальный член последовательности и его номер. Считывание членов последовательности производится до тех пор, пока не будет введен 0, то есть пока x<>0. Начальное значение минимума определяется значением первого члена последовательности. Очередное вводимое число требуется сравнивать с текущим значением минимума, и если текущее значение min окажется больше очередного члена последовательности, то его надо изменить.
- Program Example_9;
- Var x, i, min, k: Integer;
- Begin
- Writeln(Bведите первый член последовательности);
- Read(x); k:=l;
- min:=x; i:=2;
- While x<>0 Do
- Begin
- If x<min Then Begin min:=x; k:=i End;
- Writeln(Bведитe,i, элемент последовательности);
- Read(x);
- Inc(i);
- End;
- Writeln(Hoмep минимального элемента -, k);
- End.
Пример 10. Цикл с постусловием. Составить программу планирования закупки товара в магазине на сумму, не превышающую заданной величины.
Решение. Обозначим через x, k соответственно цену и количество товара, через p - заданную предельную сумму, через s - общую стоимость покупки. Начальное значение общей стоимости покупки (s) равно нулю. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран надо вывести сообщение о превышении.
- Program Example_10;
- Var x, k, p, s: Integer;
- Begin
- Writeln(Предельная сумма - ); Readln(p);
203
- s:=0;
- Repeat
- Writeln(Bведитe цену товара и его количество);
- Readln(x,k); s:=s+x*k;
- Writeln(Cтоимость покупки равна,s);
- Until s>p;
- Writeln(Суммарная стоимость покупки превысила предельную сумму};
- End.
При описании циклов с постусловием необходимо принимать во внимание следующее:
- перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено;
- тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным;
- условие окончания цикла должно быть в результате выполнено.
Пример 11. Написать программу нахождения наибольшего общего делителя (НОД) двух неотрицательных чисел.
Решение. Для решения данной задачи воспользуемся алгоритмом Евклида. Пусть x и у одновременно не равные нулю целые неотрицательные числа и пусть x>y, тогда если у = 0, то НОД(х,у) = x, а если у 0, то для чисел x, у и r, где r - остаток от деления x на у выполняется равенство НОД(x,у) = HOД(y,r).
- Program Example_11;
- Var x, у: Integer;
- Begin
- Writeln(Bведите два числа);
- Readln(x,y); {вводим два целых числа }
- Repeat {выполнять}
- If x>y Then x:=x Mod у Else y:=y Mod x;
- Until (x=0) Or (y=0);
- {до тех пор, пока одно из чисел не станет равно нулю}
- Writeln(HOД=, x+y); {вывод НОД - без условного оператора, так как одно из чисел обязательно равно нулю}
- Readln;
- End.
Пример 12. Даны натуральные числа x и у, не равные нулю одновременно. Найти d = НОД(х,у) и такие целые q и w, что d = qx + wy.
Решение. Добавим в алгоритм Евклида переменные p, q, r, s, т и n, такие, что т = pa + qb, n = ra + sb, где первоначально т = а = x, n = b = у.
Рассмотрим решение задачи для чисел 48 и 18.
M | N | Р | Q | R | S | Результаты | |
48 | 18 | 1 | 0 | 0 | 1 | 48 = 48·1 + 18·0 18 = 48·0 + 18·1 | |
48 mod 18= 12 | 18 | 1 | -2 | m> n | 12 = 48·1 + 18 (-2) | ||
12 | 18 mod 12 = 6 | -1 | 3 | m<n | 6 = 18·1 + 12(-1) = 48(-l) + 18·3 | ||
12 mod 6 = 0 | 6 | 3 | -8 | m> n | 0 = 18·1 + 6(-2) = 48·3+ 18 (-8) | ||
0 | 6 | m = 0 | d= n·q = r w = s |
204
Итак, d= НОД(48,18) = 6 и 6 = 48(-l) + 18·3.
Значения переменных p, q, r, s изменяются следующим образом:
- как только значение переменной т уменьшается на k·n, значение p уменьшается на k·r, a q уменьшается на k·s;
- аналогично, как только значение n уменьшается на k·m, значения переменных r и s уменьшаются соответственно на k·p и на k·q.
Учитывая все, что сказано выше, составим программу:
- Program Example_12;
- Var x,y: Integer; {исходные данные}
- p,q,r,s,m,n: Integer; {введенные вспомогательные переменные}
- к: Integer; {для изменения значений p,q,r,s}
- d: Integer; {значение наибольшего общего делителя}
- Begin
- Read(x,у);
- m:=x; n:=y; p:=1; q:=0; r:=0; s:=1;
- Repeat
- If m>n Then
- Begin
- k:=m Div n; m:=m Mod n;
- p:=p-k*r; q:=q-k*s
- End
- Else
- Begin
- k:=n Div m; n:=n Mod m; r:=r-k*p; s:=s-k*q End
- Until (m=0) Or (n=0);
- If m=0 Then Begin d:=n; q:=r; w:=s;
- Else Begin d:=m; q:=p; w:=q;
- End;
- Writeln(d,=,q,*,x,+,w,*,y);
- End.
X | Y | Результаты | |
48 | 18 | ||
48 mod 18= 12 | 18 | x>y | НОД(48,18) = НОД(12,18) |
12 | 18 mod 12 = 6 | x<y | НОД(12,18) = НОД(12,6) |
12 mod 6 = 0 | 6 | x>y | НОД(12,6) = НОД(0,6) |
0 | 6 | x=0 | НОД(0,6) = 6 |
Пример 13. Вложенные циклы. Даны натуральные числа n и k. Составить программу вычисления выражения 1k + 2k +... + nk.
Решение. Для вычисления указанной суммы целесообразно организовать цикл с параметром i, в котором, во-первых, вычислялось бы очередное значение у = ik и, во-вторых, осуществлялось бы накопление суммы прибавлением полученного слагаемого к сумме всех предшествующих (s = s + у).
- Program Example_13;
- Var n, k, у, i, s, m: Integer;
- Begin
- Writeln(Введите исходные данные n и k);
- Readln(n, k) ;
205
- s:=0;
- For i:=l To n Do
- Begin
- y:=l;
- For m:=l To k Do y:=y*i; {нахождение степени k числа i}
- s:=s+y;
- End;
- Writeln(Ответ:,s);
- End.
Таким образом, для решения задачи потребовалось организовать два цикла, один из которых пришлось поместить внутрь другого. Такие конструкции называют вложенными циклами.
Пример 14. Модифицировать предыдущую программу так, чтобы она вычисляла сумму 11+ 22 +... + nn.
Решение. Данная задача отличается от предыдущей тем, что показатель степени очередного слагаемого совпадает со значением ее основания, следовательно, параметры внутреннего цикла (цикла, в котором вычисляется очередное слагаемое) совпадают с параметрами внешнего цикла.
- Program Example_14;
- Var n, у, i, s, m: Integer;
- Begin
- Writeln(Введите начальное значение n);
- Readln(n); s:=0;
- For i:=l To n Do
- Begin y:=1;
- For m:=l To i Do y:=y*i; {нахождение степени k числа i}
- s:=s+y;
- End;
- Writeln(Ответ:,s);
- End.
Внутренний и внешний циклы могут быть любыми из трех рассмотренных ранее видов: циклами с параметром, циклами с предусловием или циклами с постусловием. Правила организации как внешнего, так и внутреннего циклов такие же, как и для простого цикла каждого из этих видов. Но при использовании вложенных циклов необходимо соблюдать следующее условие: внутренний цикл должен полностью укладываться в циклическую часть внешнего цикла.
Пример 15. Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10 pyб., за корову - 5pyб., за теленка - полтинник (0,5pyб.), если на 100руб. надо купить 100 голов скота.
Решение. Обозначим b - число быков; k - число коров; t - число телят. После этого можно записать два уравнения: 10b + 5k + 0,5t = 100 и b + k + t = 100. Преобразуем их: 20b + 10k + t = 200 и b + k + t = 100.
На 100 рублей можно купить:
- не более 10 быков, т.е. 0 b 10;
- не более 20 коров, т.е. 0 k 20;
- не более 200 телят, т.е. 0 r 200.
206
- Program Example_15;
- Var b, k, t: Integer;
- Begin
- For b:=0 To 10 Do
- For k:=0 To 20 Do
- For t:=0 To 200 Do
- If (20*b+10*k+t=200) And (b+k+t=100) Then
- Writeln(быков, b, коров,k, телят,t);
- End.
Пример 16. Сколько раз будет проверяться условие в данной программе?
Решение. Значение переменной b изменяется 11 раз (от 0 до 10), для каждого ее значения переменная k изменяется 21 раз, а для каждого значения переменной k переменная t изменяется 201 раз. Таким образом, условие будет проверяться 11·21·201 раз. Но если известно число быков и коров, то число телят можно вычислить по формуле t = 100 - (b + k) и цикл по переменной t исключается.