Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гос по информ телефон.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
232.82 Кб
Скачать
  1. Информатика как наука и вид практической деятельности. Структура современной информатики. Информатика - молодая научная дисциплина, изучающая вопросы, связанные с поиском, сбором, хранением, преобразованием и использованием информации в самых различных сферах человеческой деятельности. Толкование термина «информатика» еще не является установившимся и общепринятым. Сначала появился термин «кибернетика» (наука об общих закономерностях в управлении и связи в различных системах: искусственных, биологических, социальных), затем англоязычное «Computer Science», а чуть позже, на рубеже 60-70х, французы ввели получивший сейчас широкое распространение термин «Informatique». Попытку определить, что же такое современная информатика, сделал в 1978 г. Международный конгресс по информатике: «Понятие информатики охватывает области, связанные с разработкой, созданием, использованием и материально-техническим обслуживанием систем обработки информации, включая машины, оборудование, математическое обеспечение, организационные аспекты, а также комплекс промышленного, коммерческого, административного и соц. воздействия».

Структура: Теорет. инф-ка - часть информатики, включающая ряд математических разделов (теория алгоритмов и автоматов, информации и кодирования, формальные языки и грамматики, исследование операций и другие. использует математические методы для общего изучения процессов обработки информации.

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

Программирование - деятельность, связанная с разработкой систем программного обеспечения (основные разделы: создание системного и прикладного ПО).

Инф. с-мы - раздел информатики, связанный с решением вопросов по анализу потоков информации в различных сложных системах, их оптимизации, структурировании, принципах хранения и поиска информации.

  1. Иск. интеллект - область информатики, в которой решаются сложнейшие проблемы, находящиеся на пересечении с психологией, физиологией, лингвистикой и другими науками. Основные направления разработок, относящихся к этой области - моделирование рассуждений, компьютерная лингвистика, машинный перевод, создание экспертных систем, распознавание образов и другие. Место информатики в системе наук. Сущность информатизации современного общества.

по определению А.П.Ершова информатика- «фундаментальная естественная наука». Академик Б.Н.Наумов определял информатику «как естественную науку, изучающую общие свойства информации, процессы, методы и средства ее обработки (сбор, хранение, преобразование, перемещение, выдача)». Фундаментальная – т.к. понятия «информация», «процессы обработки информации» несомненно имеют общенаучную значимость. Естественная - единство законов обработки информации в системах самой разной природы - искусственных, биологических, общественных

Однако информатика имеет характерные черты и других групп наук - технических и гуманитарных (или общественных).

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

Информатизация – это целостный процесс формирования новой автоматизированной сферы как необходимого условия эффективной эксплуатации вычислительной техники, их сетей, интегрированных систем управления, робототехнических комплексов, банков данных и т.д.  Это сложный социальный процесс, связанный со значительными изменениями в образе жизни населения. Он требует серьёзных усилий на многих направлениях, включая ликвидацию компьютерной неграмотности, формирование культуры использования новых информационных технологий и др.

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

Информатизация общества — организованный социально-экономический и научно-технический процесс создания оптимальных условий для удовлетворения информационных потребностей и реализации прав граждан, органов государственной власти, органов местного самоуправления организаций, общественных объединений на основе формирования и использования информационных ресурсов.

Цель информатизации — улучшение качества жизни людей за счет увеличения производительности и облегчения условий их труда.

  1. Объект информатики. Предметная область информатики как науки

Объектом исследований информатики явлется информация, ее структура и свойства.

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

Современная структура предметной области информатики как фундаментальной науки (по К.К.Колину)

  1. Теоретическая информатика.

  2. Техническая информатика.

  3. Социальная информатика

  4. Биологическая информатика.

  5. Физическая информатика.

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

  • Физиосфера (естественная природная среда);

  • Техносфера (искусственная природа, созданная человеком).

В составе живой природы различаются также две основные сферы:

  • Биосфера (естественная природная среда живых организмов и растений);

  • Социосфера (человеческое общество).

В 1976 году академик А.П. Ершов в своем предисловии к монографии «Информатика – вводный курс» ввел новый термин «Информационная технология», которым он обозначил всю сферу машинной обработки информации.

3.Объект информатики. Предметная область информатики как науки

Объектом исследований информатики явлется информация, ее структура и свойства.

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

Современная структура предметной области информатики как фундаментальной науки (по К.К.Колину)

  1. Теоретическая информатика.

  2. Техническая информатика.

  3. Социальная информатика

  4. Биологическая информатика.

  5. Физическая информатика.

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

  • Физиосфера (естественная природная среда);

  • Техносфера (искусственная природа, созданная человеком).

В составе живой природы различаются также две основные сферы:

  • Биосфера (естественная природная среда живых организмов и растений);

  • Социосфера (человеческое общество).

В 1976 году академик А.П. Ершов в своем предисловии к монографии «Информатика – вводный курс» ввел новый термин «Информационная технология», которым он обозначил всю сферу машинной обработки информации.

4. Общая характеристика процессов сбора, передачи, обработки и хранения информации.

Сбор и хранение. Сбор информации не является самоцелью. Чтобы полученная информация могла использоваться, причем многократно, необходимо ее хранить. Хранение информации - это способ распространения информации в пространстве и времени. Способ хранения информации зависит от ее носителя (книга- библиотека, картина- музей, фотография- альбом). ЭВМ предназначена для компактного хранения информации с возможностью быстрого доступа к ней. Передача. В процессе передачи информации обязательно участвуют источник и приемник информации: первый передает информацию, второй ее получает. Между ними действует канал передачи информации - канал связи. Канал связи - совокупность технических устройств, обеспечивающих передачу сигнала от источника к получателю. Кодирующее устройство - устройство, предназначенное для преобразования исходного сообщения источника к виду, удобному для передачи. Декодирующее устройство - устройство для преобразования кодированного сообщения в исходное. Деятельность людей всегда связана с передачей информации. Обработка. Обработка информации - преобразование информации из одного вида в другой, осуществляемое по строгим формальным правилам.

Обработка информации по принципу "черного ящика" - процесс, в котором пользователю важна и необходима лишь входная и выходная информация, но правила, по которым происходит преобразование, его не интересуют и не принимаются во внимание.

"Черный ящик" - это система, в которой внешнему наблюдателю доступны лишь информация на входе и на выходе этой системы, а строение и внутренние процессы неизвестны.

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

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

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

AnAn-1An-2 … A1,A0,A-1,A-2 =

АnВn + An-1Bn-1 + ... + A1B1 + А0В0 + A-1B-1 + А-2В-2 + ...

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

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

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

кроме позиционных систем счисления существуют такие, в которых значение знака не зависит от того места, которое он занимает в числе. Такие системы счисления называются непозиционными. Наиболее известным примером непозиционной системы является римская. В этой системе используется 7 знаков (I, V, X, L, С, D, М), которые соответствуют следующим величинам:

1(1) V(5) X(10) L(50) С (100) D(500) M(1000)

Недостатком непозиционных систем, из-за которых они представляют лишь исторический интерес, является отсутствие формальных правил записи чисел и, соответственно, арифметических действий над ними (хотя по традиции римскими числами часто пользуются при нумерации глав в книгах, веков в истории и др.).

  1. Кодирование информации. Кодирование чисел, текста, изображения и звука.

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

Вся информация, которую обрабатывает компьютер, должна быть представлена двоичным кодом с помощью двух цифр — 0 и 1. Эти два символа принято называть двоичными цифрами, или битами. С помощью двух цифр 1 и 0 можно закодировать любое сообщение.

Кодирование чисел

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

шестнадцатеричной.

 Кодирование символьной информации

Нажатие алфавитно-цифровой клавиши на клавиатуре приводит к тому, что в компьютер посылается сигнал в виде двоичного числа, представляющего собой одно из значений кодовой таблицы. Кодовая таблица - это внутреннее представление символов в компьютере. Во всем мире в качестве стандарта принята таблица ASCII (American Standart Code for Informational Interchange - американский стандартный код информационного обмена). Для хранения двоичного кода одного символа выделен 1 байт = 8 бит. Учитывая, что каждый бит принимает значение 1 или 0, количество возможных сочетаний единиц и нулей равно 28 = 256. Значит, с помощью 1 байта можно получить 256 разных двоичных кодовых комбинаций и отобразить с их помощью 256 различных символов. Эти коды и составляют таблицу ASCII. 

Стандарт ASCII кодирует первые 128 символов от 0 до 127: цифры, буквы латинского алфавита, управляющие символы. Первые 32 символа являются управляющими и предназначены в основном для передачи команд управления. Их назначение может варьироваться в зависимости от программных и аппаратных средств. Вторая половина кодовой таблицы (от 128 до 255) американским стандартом не определена и предназначена для символов национальных алфавитов, псевдографических и некоторых математических символов. В разных странах могут использоваться различные варианты второй половины кодовой таблицы. <кодирование продолжение>

Кодирование графической информации

Создавать и хранить графические объекты в компьютере можно двумя способами — как растровое или как векторное изображение. Для каждого типа изображения используется свой способ кодирования.

Растровое изображение представляет собой совокупность точек, используемых для его отображения на экране монитора. Объем растрового изображения определяется как произведение количества точек и информационного объема одной точки, который зависит от количества возможных цветов. Для черно-белого изображения информационный объем одной точки равен 1 биту, так как точка может быть либо черной, либо белой, что можно закодировать двумя цифрами — 0 или 1.

Для кодирования 8 цветов необходимо 3 бита; для 16 цветов — 4 бита; для 6 цветов — 8 битов (1 байт) и т.д. 

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

Кодирование звуковой информации Звук представляет собой звуковую волну с непрерывно меняющейся амплитудой и частотой. Чем больше амплитуда сигнала, тем он громче для человека, чем больше частота сигнала, тем выше тон. В процессе кодирования непрерывного звукового сигнала производится его временная дискретизация. Непрерывная звуковая волна разбивается на отдельные маленькие участки, причем для каждого такого участка устанавливается определенная величина амплитуды. Таким образом, непрерывная зависимость амплитуды сигнала от времени заменяется на дискретную последовательность уровней громкости. Современные звуковые карты обеспечивают 16-битную глубину кодирования звука. В таком случае количество уровней сигнала будет равно 65536.

Качество кодирования зависит от количества измерений уровня сигнала в единицу времени, т.е. от частоты дискретизации. Чем больше количество измерений производится за 1 секунду (чем больше частота дискретизации), тем точнее процедура двоичного кодирования. Количество измерений в секунду может лежать в диапазоне от 8000 до 48000, т.е. частота дискретизации аналогового звукового сигнала может принимать значения от 8 до 48 кГц - качество звучания аудио-CD. Следует также учитывать, что возможны как моно-, так и стерео-режимы.

7. Этапы решения задачи на ЭВМ. Понятие о модели. Свойства моделей. Математическая модель.

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

Анализ и исследование задачи, модели: анализ существующих аналогов;  анализ технических и программных средств; разработка математической модели; разработка структур данных.

Разработка алгоритма:  выбор метода проектирования алгоритма; выбор формы записи алгоритма (блок-схемы, псевдокод и др.); выбор тестов и метода тестирования; проектирование алгоритма.

Программирование: выбор языка программирования; уточнение способов организации данных; запись алгоритма на выбранном языке программирования.

Тестирование и отладка: синтаксическая отладка; отладка семантики и логической структуры; тестовые расчеты и анализ результатов тестирования;  совершенствование программы.

Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

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

Модель - упрощенное представление о реальном объекте, процессе или явлении. Это, как правило, искусственно созданный объект в виде схемы, математических формул, физической конструкции, наборов данных и алгоритмов их обработки и т.п. Модель воспроизводит в специально оговоренном виде строение и свойства исследуемого объекта. Исследуемый объект, по отношению к которому изготавливается модель, называется оригиналом, образцом, прототипом.

Моделирование — это метод познания, состоящий в создании и исследовании моделей.

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

«Математической моделью называется совокупность математических соотношений, уравнений, неравенств и т.п., описывающих основные закономерности, присущие изучаемому процессу, объекту или системе»

7. Этапы решения задачи на ЭВМ. Понятие о модели. Свойства моделей. Математическая модель.

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

Анализ и исследование задачи, модели: анализ существующих аналогов;  анализ технических и программных средств; разработка математической модели; разработка структур данных.

Разработка алгоритма:  выбор метода проектирования алгоритма; выбор формы записи алгоритма (блок-схемы, псевдокод и др.); выбор тестов и метода тестирования; проектирование алгоритма.

Программирование: выбор языка программирования; уточнение способов организации данных; запись алгоритма на выбранном языке программирования.

Тестирование и отладка: синтаксическая отладка; отладка семантики и логической структуры; тестовые расчеты и анализ результатов тестирования;  совершенствование программы.

Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

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

Модель - упрощенное представление о реальном объекте, процессе или явлении. Это, как правило, искусственно созданный объект в виде схемы, математических формул, физической конструкции, наборов данных и алгоритмов их обработки и т.п. Модель воспроизводит в специально оговоренном виде строение и свойства исследуемого объекта. Исследуемый объект, по отношению к которому изготавливается модель, называется оригиналом, образцом, прототипом.

Моделирование — это метод познания, состоящий в создании и исследовании моделей.

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

«Математической моделью называется совокупность математических соотношений, уравнений, неравенств и т.п., описывающих основные закономерности, присущие изучаемому процессу, объекту или системе»

  1. Методы разработки алгоритма.

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

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

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

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

Одним из широко используемых методов проектирования и разработки алгоритмов (программ) является модульный метод (модульная технология).

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

  1. Среда программирования Паскаль. Алфавит и синтаксис языка. Правила записи выражений. Типы данных в Паскале.

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

В языках программирования высокого уровня программа - это перечень действий. Исполнение этих действий определено в самом языке программирования, и их принято называть операторами. Любая Паскаль-программа является текстовым файлом с собственным именем и с расширением .pas.

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

Идентификатор - это имя любого объекта языка. Он может состоять из латинских букв (a...z), цифр (0...9) и знака подчеркивания и не должен начинаться с цифры. Прописные и строчные буквы в идентификаторах и зарезервированных словах считаются идентичными, они различаются лишь в строковых константах. Разделители используются для отделения друг от друга идентификаторов, чисел и зарезервированных слов. К разделителям относятся, например, пробел и комментарий. К специальным знакам относятся знаки пунктуации (. () [] .. : ;), знаки операций и зарезервированные слова. Зарезервированные слова являются служебными и не могут быть переопределены пользователем, т.е. их нельзя использовать как имена пользовательских объектов. Неиспользуемые символы - используются только в комментариях и символьных строках, но не в языке. К ним относятся все русские буквы, а также символы %, &, ! и т.п.

Понятие переменной является важным понятием программирования. Если в программе используются переменные, то все переменные должны быть описаны в разделе описания переменных. Под переменной в языках программирования понимают программный объект (число, слово, часть слова, несколько слов, символы), имеющий имя и значение, которое может быть получено и изменено программой. Переменная - это имя физического участка в памяти, в котором в каждый момент времени может быть только одно значение; это область в оперативной памяти компьютера для хранения какой-либо информации. Само название "переменная" подразумевает, что содержимое этого участка может изменяться.

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

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

<продолжение паскаль типы данных>

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

Группа типов, значения каждого из которых можно перечислить в некотором списке - скалярные типы. Для них определена порядковая функция ord(x) - номер значения х в списке (для целочисленного х ord(x)=x); функции pred(x) - значение в списке, предшествующее х, и suce(x) - значение в списке, следующее за х.

Упорядоченный тип - это тип, значения которого упорядочены в обычном смысле. К данным такого типа применимы операции отношения <, >, <= (меньше или равно), >=(больше или равно), =, <> ( не равно). Над целыми величинами (тип integer) определены арифметические операции : * (умножение), div (деление нацело), mod (вычисление остатка от деления), + , -(сложение и вычитание); операции перечислены в порядке старшинства.

Например: 25 div 4 = 6 ; 25 mod 4=1. Целый результат дают некоторые стандартные функции (аргумент функции заключается в круглые скобки):

abs(x) - абсолютная величина целого х;

sqr(x) -квадрат значения х;

trunc(x) - целая часть вещественной величины х;

round(x) - целое число, полученное из вещественного х по правилу округления;

random(x) - случайное целое число из интервала от 0 до х.

Например: trunc(4.7)=4 ; round(4.7)=5 ; sqr(3)=9 . Для данных типа byte определены те же операции и функции, что и для данных типа integer.

Над вещественными величинами определены операции: *, +, -, /, а также стандартные функции при вещественном или целом аргументе: abs(x), sqr(x), sin(x), cos(x), arctan(x), ln(x), exp(x), sqrt(x) - квадратный корень из х, int(x) - целая часть из х, random - случайное число из интервала от 0 до 1. Указанные операции и функции дают вещественный результат.

Над логическими величинами определены операции: not - отрицание, and -конъюнкция, or-дизъюнкция. Логическая функция odd(x) принимает значение true, если целочисленное х является нечетным и false , если четным.

Множество всех символов образуют символьные величины (тип char), которые являются упорядоченными, причем 'А' < 'В'< 'С' <...< 'Z', 'а' < 'b' <...< 'z', '0' < 'I' <...< '9'.

11. Общий вид программы на Паскале. Описание данных.

Программа, написанная по правилам стандартного языка Паскаль, должна иметь в своем полном варианте (когда в ней задействованы все виды программных объектов) следующую структуру:

Program имя программы;

Uses Список используемых модулей

Label Список меток из основного блока программы

Const Определение констант программы

Type Описание типов

Var Описание переменных

Procedure Текст процедуры

Function Текст функции

Begin

Основной блок программы

(раздел операторов)

End.

Слова PROGRAM, BEGIN и END выделяют 2 части программы: раздел описаний и раздел операторов. Такая структура обязательна. Любой объект, используемый в программе, должен быть учтен в разделе описаний. Иными словами, в разделе описаний должны быть перечислены имена всех используемых в программе меток, констант, нестандартных типов данных, переменных. Кроме того, в разделе описаний приводятся тексты функций и процедур. Раздел операторов - это основная часть программы, здесь содержатся команды, составляющие программу.

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

  1. Ввод и вывод данных.

Имеются две встроенные процедуры (подпрограммы) ввода: read(<cписок переменных>); readln(<cписок переменных>).

При выполнении процедуры read(xl,x2,...,xN) программа прерывается и компьютер ждет ввода с клавиатуры N значений переменных из списка х1, х2,..., xN. Эти значения - константы соответствующих типов - должны при вводе разделяться пробелами. Набор данных завершается клавишей ввода. Процедура readin отличается от read только тем, что при завершении ввода курсор перемещается в начало следующей строки.

Имеются две встроенные процедуры (подпрограммы) ввода: read(<cписок переменных>); readln(<cписок переменных>).

При выполнении процедуры read(xl,x2,...,xN) программа прерывается и компьютер ждет ввода с клавиатуры N значений переменных из списка х1, х2,..., xN. Эти значения - константы соответствующих типов - должны при вводе разделяться пробелами. Набор данных завершается клавишей ввода. Процедура readin отличается от read только тем, что при завершении ввода курсор перемещается в начало следующей строки.

  1. Простые и сложные условия. Ветвление и выбор: алгоритм и реализация в Паскале.

Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Они предназначены для выделения из составляющих их операторов одного, который и выполняется.

Структура и действие условного оператора таковы: If <лог. выражение> then <оператор 1> else <оператор 2>

Условный оператор может быть неполным, т.е. не содержать часть «else <оператор 2>». В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий.

Оператор варианта имеет следующую форму:

case <выражение> of

<список констант 1> : <оператор 1>;

<список констант 2> : <оператор 2>;

…………………………

<список констант N> : <оператор N>

end.

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

Оператор варианта вычисляет значение выражения, записанного после case. Если его значение совпадает с одной из констант в некотором списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной константой во всех вариантах, то оператор варианта ничего не делает.

  1. Виды циклов. Цикл с параметром: алгоритм и реализация в Паскале.

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

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

for <параметр>:= <выражение 1> to <выражение 2> do <оператор>

Параметр, выражение 1, выражение 2 должны быть одного ординального типа. Параметр в этом цикле возрастает.

for <параметр>:=<выражение 1> downto <выражение 2> do <оператор> - параметр убывает.

  1. Циклы с постусловием и с предусловием: алгоритмы и реализация в Паскале.

Цикл с предусловием является наиболее мощным в Паскале. Другие операторы цикла можно выразить через него. Его форма такова:

while - <логическое выражение> do <оператор>

Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается.

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

Оператор цикла с постусловием имеет форму:

repeat <последовательность операторов>

until <логическое выражение>

Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения. Если оно равно true, то действие заканчивается, в противном случае снова выполняется последовательность операторов и т.д.

  1. Вспомогательный алгоритм: понятие, правила описания и вызова. Формальные и фактические параметры.

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

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

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

При использовании вспомогательных алгоритмов необходимо учитывать способ передачи значений исходных данных для них и получения результата от них. Аргументы вспомогательного алгоритма — это переменные, в которых должны быть помещены исходные данные для решения соответствующей подзадачи.  Результаты вспомогательного алгоритма — это также переменные, где содержаться результаты решения этих подзадач, а также результатом может быть конкретное действие, которое совершает компьютер под действием подпрограммы.

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

Формальные параметры — это идентификаторы входных данных для подпрограммы. Если формальные параметры получают конкретные значения, то они называются фактическими. Формальные параметры могут получить конкретные значения только в той программе, где производится обращение к данному модулю-подпрограмме.  Тип и порядок записи фактических параметров должны быть такими же, как и формальных параметров. В противном случае результат работы программы будет непредсказуемым. Из этого следует, что фактические параметры используются при обращении к подпрограмме из основной, а формальные параметры — только в самом модуле. Подпрограмма с параметрами используется для записи многократно повторяющихся действий при разных исходных данных. Подпрограммы с параметрами можно разделить на два типа: подпрограммы-функции и просто подпрограммы с параметрами (их называют процедурами).

При составлении подпрограмм с параметрами надо соблюдать следующие правила: каждая подпрограмма имеет свое имя и список формальных параметров; процедура из основной программы вызывается командой вызова, которая по форме ничем не отличается от вызова команды исполнителя. Результат присваивается одной или нескольким переменным, которые находятся в списке формальных параметров. Результатом могут быть не только значения переменных, но какое либо действие, выполненное ЭВМ.

объявление и тело подпрограмм находится в разделе описаний. В заголовке подпрограммы содержится список формальных параметров с указанием их типа, которые условно можно разделить на входные и выходные (перед ними стоит служебное Var). При обращении к процедуре указывается ее имя и список фактических параметров. Формальные и фактические параметры должны соответствовать по количеству и по типу.

  1. Подпрограммы. Виды подпрограмм в Паскале: правила описания и вызова. Локальные и глобальные переменные. Формальные и фактические параметры. Параметры-переменные и параметры-значения.

Описание и вызов. В Паскале подпрограммы называются процедурами и функциями и описываются в разделе с тем же названием.

Процедура имеет такую же структуру, как и программа, но с двумя отличиями:

• заголовок процедуры имеет другой синтаксис и включает служебное слово procedure;

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

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

procedure <имя> (<список описаний формальных параметров>). Описание формальных параметров может иметь вид

<список имен>: <тип> или

var <список имен>: <тип>

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

Оператор вызова процедуры имеет вид

<имя процедуры> (<список выражений>);

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

Параметры-переменные следует использовать для представления результатов процедуры.

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

• заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции:

function <имя> (список описаний формальных параметров): <тип>;

•раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;

• обращение к функции - не оператор, а выражение вида

<имя функции> (<список фактических параметров>).

Функции (и процедуры) могут использовать свое имя в собственном описании, т.е. могут быть рекурсивными.

  1. Структурированные типы данных. Массив. Имя, тип, значение. Описание типа массив и переменной-массива. Элемент массива. Линейный и двумерный массивы. Ввод и вывод элементов массива.

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

Часто используемый составной тип - массив. Массив - это последовательность, состоящая из фиксированного числа однотипных элементов. Все элементы массива имеют общее имя (имя массива) и различаются индексами. Индексы можно вычислять, их тип должен быть ординальным. При описании массивов используются служебные слова array и of. В описании массива указывается тип его элементов и типы их индексов. В описании массива указывается тип его элементов и типы их индексов. В Pascal массивы бывают статическими (количество элементов строго определено в начале программы конкретным значением и ограничено некоторым числом) и динамическим (число элементов может изменяться, и ограничено объемом памяти компьютера). Также массивы бывают одномерными (линейными) и многомерными (элементы массива – массивы, строки и другие типы данных).

Все операции с массивами сводятся к операциям над их элементами. Каждый элемент имеет свой уникальный адрес. Схема описания такова:

type <имя типа> = array [<список типов индексов>] оf <тип элементов>

Тип элементов - произвольный, он может быть составным. Число типов индексов называется размерностью массива. После описания типа массива конкретные массивы можно задать в разделе описания переменных.

Описание массива можно совместить с описанием соответствующих переменных:

var a,b : array [1.. 10] of real;

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

Ввод массива – вручную или с помощью генератора случайных чисел.

1. for i:=l to n do readln(a[i]:3);

2. randomize; for i:=1 to n do begin

a[i]:= random(10); readln(a[i]); end;

вывод:

for i:=l to n do write(a[i]:3);

  1. Организация поиска в массиве. Линейный и бинарный поиск.

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

Бинарный поиск. (поиск методом деления пополам) – исп. для отсортированного одномерного массива. Вместо просмотра подряд всех элементов массива, делим его пополам. Находим индекс элемента, наход. посередине. i1:=1 – первый элемент; ip:=n – последний элемент, m:=i(1+ip)/2 – средний элемент. Сравниваем искомый элемент (L) со значением среднего элемента массива. Вывод: может ли быть элемент с таким значением в массиве, и в какой половине он находится. Если a[m]=L (местонахождение m), то выводим средний элем. m. Если a[m] ≠ L, то проверяем a[m]>L, т.е. элм. наход. левее m и заменяем ip=n на lp=m-1. Если a[m]<L, то L наход правее m. Тогда i1=m+1 до тех пор пока либо i1 не станет = m, либо не выполнится условие a[m]=L.

i1:=1; ip:=n; p:=false;

while(i1<=ip) and (not p) do begin m:=(i1+ip) div 2

if a[m]=L then p:=true else a[m]<L then i1:=m+1 else ip:=m-1 end;

if p then writeln(m) else writeln(‘таких нет’).

  1. Сортировка массива: области применения сортировки массива. Внутренняя и внешняя сортировки. Сортировка массива простым выбором, с помощью прямого обмена, вставками.

Одним из важнейших процедур обработки структурированной информации является сортировка. Сортировкой называют процесс перегруппировки заданной последовательности объектов в некотором определенном порядке.

Существуют различные алгоритмы сортировки данных. И, понятно, что не существует универсального, наилучшего во всех отношениях алгоритма сортировки.

Выбор наименьшего элемента.

По возрастанию:

суть состоит в том, чтобы на первое место встал самый маленький элемент массива [1…n], на второе – самый маленький из массива [2…n]; …; на n-1 место - самый маленький из массива [n-1…n].

Пример: 79831 – исходный массив;

79831 – 39871-19873 – первый шаг;

19873 - 13879 – 2 шаг;

13879 - 13789 – 3 шаг.

В общем случае сравнение проходит в nn-1 раз (в нашем случае – 20 раз).

Метод обменов (пузырьковый).

Сравниваются два соседних элемента и меняются местами в зависимости от отношения <или>.

По возрастанию:79831

79831-78931-78391-78319 – 1 проход;

78319-73819 – 73189 - 2 проход;

73189-37189-31789- 3 проход;

31789-13789 – 4 проход.

Как и в предыдущем случае, сортировка идет в nn-1 раз.

Метод вставки.

Массив делится на две части: первая – упорядоченная, вторая – неупорядоченная. В самом начале к упорядоченной части относят первый элемент. Далее берут первый элемент из второй части i и запоминают его b:= a [ I ]. Находят в упорядоченной части ему место l:=1 так, чтобы первая часть оставалось упорядоченной. Если b > a [ j ], то элемент справа, если нашли ему место, то все элементы сдвигаем вправо.

for i; = 2 to n do begin b:= a [ I ]; j:= 1 while b > a [ j ] do

j: = j + 1{ищем место вставки в упорядоченной области}

for k:=j -1 down to j; a [k+1]:=a [ k ] {сдвигаем все элементы от места вставки для освобождения этого места}

a [ j ] := b {вставляем элем в упорядоченную область}

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

  1. Структурированные типы данных: строки. Описание величин строкового типа. Операции, процедуры и функции над строковыми величинами.

При решении задач на ЭВМ часто возникает необходимость в использовании последовательностей символов. Такую последовательность можно описать как массив символов, однако в Паскале для таких целей имеется специальный тип - string[n] - строка из n символов, где n <= 255. Способы описания переменных - строк - аналогичны описанию массивов.

1. Строковый тип определяется в разделе описания типов, переменные этого типа - в разделе описания переменных: type word: string[20]; var a,b,c : word;

2. Можно совместить описание строкового типа и соответствующих переменных в разделе описания переменных:

var a,b,c : string[20]; d : string[30];

3. Можно определить строковую переменную и ее начальное значение как констант-строку: const l:string[l 1]='информатика';

Символы, составляющие строку, занумерованы слева направо; к ним можно обращаться с помощью индексов, как к элементам одномерного массива. Для переменных одного строкового типа определен лексикографический порядок, являющийся следствием упорядоченности символьного типа: 'fife' < 'tree' (так как 'f' < 't'); '4' > '237' (так как '4' > '2').

Кроме логических операций <, >, =, для величин строкового типа определена некоммутативная операция соединения, обозначаемая знаком плюс: а:='кол'+'о'+'кол'; (в результате а='колокол').

Для строковых величин определены следующие четыре стандартные функции.

1. Функция соединения - concat(sl,s2,...,sk). Значение функции - результат соединения строк sl ,s2,...sk, если он содержит не более 255 символов.

2. Функция выделения - copy(s,i,k). Из строки s выделяется k символов, начиная с i-того символа: а:=сору('крокодил',4,3); (в результате а='код*).

3. Функция определения длины строки - length(s). Вычисляется количество символов, составляющих текущее значение строки s: b:=length('каникулы'); (b=8).

4. Функция определения позиции - pos(s,t). Вычисляется номер позиции, начиная с которого строка s входит первый раз в строку t; результат равен 0, если строка s не входит в t: с:=роs('ом','компьютер'); (с=2).

В Паскале определены также четыре стандартные процедуры для обработки строковых величин:

1. Процедура удаления delete(s,i,k). Из строки s удаляется k символов, начиная с i-того символа. s:='таракан'; delete(s,5,2); (в результате S='таран').

2. Процедура вставки - insert(s,t,i). Строка s вставляется в строку t, начиная с позиции i: t:='таран'; insert ('ka',t,5); (t='таракан').

3. Процедура преобразования числа в строку символов - str(k,s). Строка s получается «навешиванием» апострофов на число k: str(564,s); (s='564').

4. Процедура преобразования строки из цифр в число - val(s,k,i). Число i=0, если в строке s нет символов, отличных от цифр, в противном случае i=позиции первого символа, отличного от цифры: val('780',k,i); (k=780; i=0).

  1. Итерационные и рекурсивные алгоритмы. Рекуррентные соотношения.

Итерация - это циклическая конструкция алгоритма, которая, вообще говоря, является составной структурой, состоящей из композиции и альтернативы. Итерации могут быть представлены в двух формах: с предусловием и с постусловием.

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