Шпаргалка Шпаргалка по Информатике
Работа добавлена на сайт bukvasha.net: 2015-10-29Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
1.Информатика – это комплексная, техническая наука, которая систематизирует (изучает, рассматривает, анализирует) приемы создания (продуцирования), сохранения, воспроизведения (репродуцирования), обработки и передачи информации (данных) средствами вычислительной техники, а также принципы функционирования этих средств и методы управления ними. Термин «информатика» происходит от франц. Informatique и образован от двух слов: информация и автоматика. Введен во Франции в середине 60-х XX века. В англоязычных странах вошел в употребление термин «Computer Science». Появление информатики обусловлено возникновением и распространением новой технологии сбора, обработки и передачи информации. Предмет информатики как науки составляют:
· аппаратное обеспечение средств вычислительной техники;
· программное обеспечение средств вычислительной техники;
· средства взаимодействия аппаратного и программного обеспечения;
· средства взаимодействия человека с аппаратными и программными средствами.
Средства взаимодействия в информатике принято называть интерфейсом. Поэтому средства взаимодействия аппаратного и программного обеспечения иногда называют также программно-аппаратным интерфейсом, а средства взаимодействия человека с аппаратными и программными средствами - интерфейсом пользователя.
Основной задачей информатики как науки - это систематизация приемов и методов работы с аппаратными и программными средствами вычислительной техники. Цель систематизации состоит в том, чтобы выделять, внедрять и развивать передовые, более эффективные технологии автоматизации этапов работы с данными, а также методически обеспечивать новые технологические исследования.
Информатика - практическая наука. Основные направления информатики для практического применения :
· архитектура вычислительных систем;
· интерфейсы вычислительных систем;
· программирование;
· преобразование данных;
· защита информации;
· автоматизация;
· стандартизация.
Информационные технологии – широкое понятие, человеко-машинные технологии сбора, обработки и передачи информации, которые основываются на использовании вычислительной техники. Они быстро развиваются, охватывая все сферы человеческой деятельности: медицину, производство, науку, образование, быт и т.д.
2. Информация - это совокупность сведений (данных), которая воспринимается из окружающей среды (входная информация), выдается в окружающую среду (исходная информация) или сохраняется внутри определенной системы.
Информация существует в виде документов, чертежей, рисунков, текстов, звуковых и световых сигналов, электрических и нервных импульсов и т.п..
Информация бывает: звуковая, вкусовая, тактильная, обонятельная, зрительная.
Важнейшие свойства информации:
· объективность и субъективность;
· полнота;
· достоверность;
· адекватность;
· доступность;
· актуальность.
Данные являются составной частью информации, представляющие собой зарегистрированные сигналы.
Операции обработки данных:
· сбор данных - накопление информации с целью обеспечения достаточной полноты для принятия решения;
· формализация данных - приведение данных, которые поступают из разных источников к единой форме;
· фильтрация данных - устранение лишних данных, которые не нужны для принятия решений;
· сортировка данных - приведение в порядок данных за заданным признаком с целью удобства использования;
· архивация данных - сохранение данных в удобной и доступной форме;
· защита данных - комплекс мер, направленных на предотвращение потерь, воспроизведения и модификации данных;
· транспортирование данных - прием и передача данных между отдаленными пользователями информационного процесса. Источник данных принят называть сервером, а потребителя - клиентом;
· преобразование данных - преобразование данных с одной формы в другую, или с одной структуры в другую, или изменение типа носителя.
3. Программирование - процесс подготовки задач для решения их на ЭВМ, состоящий из следующих этапов: алгоритмическое описание задачи, составление программы, трансляция программы с языка программирования на машинный язык.
Компьютерная программа — последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины.
Языки программирования - это формальные языки, применяемые для описания компьютерных программ, система правил и обозначений при написании компьютерных программ. Бывают двух видов: низкого уровня и высокого уровня.
Языки низкого уровня (Ассемблер,
MSIL
). Они позволяют писать программы на языке машинных кодов (использовать систему команд процессора). Например, языки ассемблера (сколько типов ассемблеров, столько типов процессоров). Машиннозависимы!!!
Языки высокого уровня (
C
,
C
++,
Java
,
Pascal
). Они позволяют отвлечься от типа процессора. С помощью них создаются универсальные программы, т.к. они уникальны, независимы от процессора. Машиннонезависимы!!! Бывают двух видов: процедурные и непроцедурные.
1)процедурный язык. Служит для описания соответствующего алгоритма. В основе базовые управляющие структуры: следование, развилка, цикл. Процедура – самостоятельная, независимая, составная часть программы.
2)непроцедурные языки. Составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам, и языков связи с операционным системами.
Эти языки – логические языки.
Реализация языка – системная программа, переводящая записи на языке машинного уровня в последовательность машинных кодов.
Транслятор (средство реализации языка): компиляторы или интерпретаторы. Чтобы программа была понятна процессору ее нужно транслировать. В качестве переводчика выступает системная программа - ТРАНСЛЯТОР. При интерпретации трансляция идет пооператорно. При компиляции программа транслируется вся целиком, при обнаружении ошибки начинается заново. В отличие от компиляции для интерпретации характерны медленность и повторное транслирование.
Системы программирования – комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Каждая система программирования связана с каким-либо языком. Например, для Паскаля – это Borland Pascal, Turbo Pascal, Delphi. Система программирования включает в себя: транслятор, текстовый редактор, отладочные программы, служебные программы.
Паскаль. Программирование заключается в записи алгоритма на языке программирования и отладке программы. Текст программы записывается в текстовом редакторе, затем программа компилируется – переводится транслятором в машинные коды – и запускается на выполнение. Процесс отладки начинается с выявления: синтаксических ошибок в тексте, ошибок при выполнении программы, алгоритмических ошибок. Работает в режиме компиляции.
4.Паскаль – структурный язык программирования высокого уровня. Автор – Никлаус Вирт, 1971 год, Швейцария. Плюсами Паскаля являются удобный интерфейс и высокая скорость компиляции, которые сделали его одним из самых распространенных.
Идентификатор - имя любого объекта программы - может включать буквы(26 латинских букв), цифры и символ подчеркивания. Разделители используются для отделения друг от друга идентификаторов, чисел, зарезервированных слов. В качестве разделителей можно использовать: пробел, любой управляющий символ (коды от 0 до 31),комментарий.
1 этап. Набор Паскаль программы. 2 этап. Компиляция. 3 этап. Запуск программы.
Программирование заключается в записи алгоритма на языке программирования и отладке программы. Текст программы записывается в текстовом редакторе, затем программа компилируется – переводится транслятором в машинные коды – и запускается на выполнение. Процесс отладки начинается с выявления: синтаксических ошибок в тексте, ошибок при выполнении программы, алгоритмических ошибок. Работает в режиме компиляции.
Структура Паскаль программы:
Program имя_программы;
Uses {подключение модулей};
Const {раздел описания констант};
Label {раздел описания меток};
Type {раздел описания типов};
Var {раздел описания переменных};
Begin
{Тело программы};
End.
Порядок размещения разделов произвольный, можно создавать несколько одинаковых разделов. Единственное правило, которое необходимо выдерживать, - в любом месте программы можно использовать лишь элементы (метки, типы, константы, переменные, подпрограммы и т. д.), которые были определены ранее по тексту программы или являются предопределенными элементами языка.
5. Величина – это некий объект, подлежащий обработке в теле программы. Тип величин: постоянные (константы) и непостоянные. Любая величина в Паскале относится к какому-то типу. Они классифицируются: по множеству принимаемых значений, по набору операций над этими величинами. Типы: ссылочные, специальные, структурные(массивы), простые(вещественные – REAL, ординальные – перечисляемые, диапазонные, предписанные (BOOLEAN, CHAR, INTEGER).
В Турбо-Паскале предусмотрен механизм создания новых типов данных, благодаря чему общее количество типов, используемых в программе, может быть сколько угодно большим.
1)диапазонный тип строится на базе. Интервал значений 1..30, ‘a’..’z’. <min значение>..<max значение>.
2)перечисляемый тип используется редко и задается самим пользователем. X:(mon..sun).
3)предписанные – классические, встроенные типы. Логический BOOLEAN. 2 значение: true=1, false=0. 0v1=1, 1л0=0. Символьный CHAR. Для кодирования используется код ASCII – американски 7-битный код кодирования информации. Целочисленный INTEGER. Диапазон возможных значений целых типов зависит от их внутреннего представления -32765...+32769. Операции типа +, -, *, div, mod.
4)вещественный тип REAL. Вещественное число или десятичная дробь. Целая часть от дробной отделяется «.». 4 байта – 1 на порядок, 3 под монтиссу (цифры). DoubleReal – 8 байт – 2 на порядок, 6 под монтиссу. Операции типа +, -, *, /.
Переменная – это область оперативной памяти, занимающая несколько ячеек и имеющая свое имя.
Свойства переменных: хранит не более одного значения, способна хранить значения только одного и того же типа, переменная хранит значение до тех пор, пока в нее не поместят новое, при этом предыдущее стирается.
В Паскале имя переменной должно начинаться с латинской буквы, состоять из латинских букв, цифр, знака «_». Имя должно состоять не более чем из 63 символов (больше не воспринимает компилятор).
VAR имя_переменной:тип переменной;
Выражение - это синтаксическая единица языка, определяющая способ вычисления некоторого значения. Выражения в языке Паскаль формируются в соответствии с рядом правил из констант, переменных, функций (стандартных и написанных самостоятельно), знаков операций и круглых скобок. Выражение задает правило вычисления некоторого значения. Порядок вычисления определяется приоритетом, содержащихся в нем операций:
1)в круглых скобках;
2)значения функций;
3)операции @, not;
4)div, mod, and, *, /;
5)+, -, or, xor;
6)=,<>,<,>,<=,>=, in.
Арифметическое выражение- это совокупность констант, переменных и функций, объединенная знаками арифметических действий и круглыми скобками таким образом, чтобы данное выражение имело математический смысл. Логическое выражение: NOT - логическое отрицание ("НЕ"), AND - логическое умножение ("И"), OR - логическое сложение ("ИЛИ"), XOR - логическое "Исключающее ИЛИ". Выражения отношения: =,<>,<,>,<=,>=.
6. Оператор присваивания относится к простым операторам. По этому оператору переменной присваивается значение выражения. Несмотря на кажущуюся простоту оператора присваивания, при его выполнении осуществляется целый набор элементарных действий:
а) переменные выражения получают свои значения;
б) вычисляется значение выражения;
в) переменной присваивается полученное значение.
В простейшем случае, когда выражение задано константой или другой переменной, вычислений не производится и переменная сразу получает свое значение.
X := Y;
Z :=А + В;
Оператор ВВОДА -
READ
,
READLN
. Для ввода исходных данных чаще всего используется процедура Readln.
Readln (A1,A2…AК);
Процедура производит чтение К значений исходных данных и присваивает эти значения переменным A1,A2…AК. При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать к целому, действительному, символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо.
Оператор ВЫВОДА –
WRITE
,
WRITELN
. Для вывода результатов работы программы на экран используются: Write (A1,A2,…AK);
Writeln (A1,A2,…AK);
Первый из этих операторов производит вывод значений переменных A1,A2,…AK в строку экрана. Второй, в отличие от первого, не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она производит пропуск строки и переход к началу следующей.
Линейной называется программа, все операторы которой выполняются последовательно в том порядке, в котором они записаны.
program EXAMPLE1;
var
X, Y, Summa: Real;
begin
Write ('Введите, числа X и Y ');
ReadLn(X, Y);
Summa := X + Y;
WnteLn('Сумма чисел X и Y равна ', Summa)
end.
7. Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование (образуется последовательностью действий, следующих одно за другим), ветвление, цикл (обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла).
Базовая структура – ветвление.
Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.
Условный оператор
IF
. Позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор – это средство ветвления вычислительного процесса.
IF <логическое_условие> THEN оператор_1 ELSE оператор_2;
Часть ELSE оператор_2 условного оператора может быть опущена, тогда получается краткая форма записи оператора IF.
IF <логическое_условие> THEN оператор;
Тогда при выполнении условия выполняется оператор, в противном случае он пропускается.
Действие условного оператора можно расширить, если использовать составной оператор.
IF <логическое_условие> THEN
BEGIN
операторы
END
ELSE
BEGIN
операторы
END;
Логические выражения
1)знаки отношений <,>,=,<=,>=,<>;
2)логические операции: NOT (отрицание – НЕ), AND (умножение - И), OR (сложение – ИЛИ), XOR (исключение - ИЛИ).
Оператор выбора
CASE
. Позволяет выбрать одно из нескольких возможных продолжений программы. Параметром по которому осуществляется выбор, служит ключ выбора – переменная или выражение (кроме типов REAL и STRING). Ключ выбора – порядковый тип или CHAR.
CASE <ключ_выбора> OF
константы:операторы
END;
Или
CASE <ключ_выбора> OF
константы:операторы
ELSE оператор
END;
Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми.
Program primer_IF;
VAR x,y,max:integer;
BEGIN
Writeln (‘Vvedite 2 chisla’);
Readln(x,y);
IF x>=y then max:=x ELSE max:=y;
Writeln (‘Max=’,max);
END.
Program primer_CASE;
VAR i:integer;
BEGIN
Writeln (‘Vvedite nomer kvartiri ot 1 do 5’);
Readln (i);
CASE I OF
1:writeln(‘Ivanovi’);
2:writeln(‘Petrovi’);
3:writeln(‘Zubakovi’);
4:writeln(‘Lisicina’);
5:writeln(‘Koshkina’)
ELSE writeln (‘kvartir bolshe net’);
End;
End.
Используя несколько операторов IF, можно производить ветвление по последовательности условий, но это очень утомительно. Оператор выбора CASE позволяет выбрать одно из нескольких возможных продолжений программы, что наиболее удобно. Параметром, по которому осуществляется выбор, служит так называемый ключ выбора.
8+9. Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование (образуется последовательностью действий, следующих одно за другим), ветвление (обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма), цикл.
Базовая структура – цикл.
Цикл – многократно повторяющийся участок вычислительного процесса.
Циклы: арифметические (заранее известно количество необходимых повторений, FOR), итерационные (количество необходимых повторений заранее неизвестно). Итерационные: цикл с предусловием (WHILE) и цикл с постусловием (REPEAT).
Оператор
FOR
(цикл с параметром).
FOR i:=n1 TO n2 DO <оператор>;
n1 – начальное значение, n2 – конечное значение.
Данный цикл предназначен для организации циклов, когда заранее известно сколько раз должно повториться тело цикла.
Работа оператора FOR:
1) вычисляются начальное и конечное значения;
2) параметр цикла получает начальное значение;
3) проверяется условие : параметр цикла <= конечное значение;
4) если условие истинно, то выполняется тело цикла, в противном случае работа цикла прекращается;
5) параметр цикла увеличивается на 1;
6) переходим к пункту 3.
Итерационные циклы.
Оператор
WHILE
(ЦИКЛ с предусловием).
WHILE <условие> DO <оператор>;
Выполнение оператора цикла начинается с проверки условия, записанного после слова WHILE, если оно выполняется, то выполняется тело цикла, а затем вновь идет проверка условия. Как только на очередном шаге окажется, что выполнение не соблюдается, выполнение цикла прекращается. Условие вычисляется и анализируется перед каждым выполнением цикла (отсюда и берется термин предусловия).Рекомендации:
1) в условии, как в логическом выражении, должны обязательно фигурировать переменные, изменяющие свои значения в теле цикла;
2) во избежание зацикливания лучше сначала написать условие прекращения цикла и взять потом его отрицание;
3) переменные логического выражения должны получить свои исходные значения до входа в оператор WHILE.
Оператор
REPEAT
(цикл с постусловием).
REPEAT <тело_цикла> UNTIL <условие>;
Оператор REPEAT называется оператором цикла с постусловием, т.к. здесь выражение, управляющее повторным циклом, размещается после тела цикла. Последовательность операторов, входящих в тело цикла, выполняется один раз, после чего идет проверка условия, записанного за служебным словом UNTIL. Если условие соблюдается – цикл завершается, в противном случае тело цикла повторяется еще раз, после чего снова идет проверка условия.
! В операторе REPEAT проверка условия выхода из цикла выполняется в конце, а не в начале цикла, как в операторе WHILE. Поэтому в операторе REPEAT тело цикла выполняется хотя бы один раз. В операторе REPEAT выход из цикла осуществляется по истинности условия, а в WHILE – по ложности.
Program with_for;
VAR x,y:integer;
BEGIN
x:=5
FOR y:=2 TO 10 DO
x:=x+2;
WRITELN(x);
READLN;
END.
PROGRAM WITH_WHILE;
VAR a,b:ineger;
BEGIN
a:=2; b:=3;
WHILE b<=15 DO
BEGIN
a:=a+2; b:=b+3;
END;
WRITELN (a); READLN;
END.
PROGRAM WITH_repeat;
VAR a,b:ineger;
BEGIN
a:=2; b:=3;
repeat a:=a+2; b:=b+3;
until b<=15;
WRITELN (a)READLN;
END.
10. Подпрограмма — поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы.
Процедура – именованная последовательность инструкций, реализующая некоторое действие, подпрограмма с параметрами.
Процедуры: с параметрами значениями, с параметрами переменными.
Переменные:
1) локальные (объявляются внутри блока)
· формальные(параметры заголовка процедуры);
· вспомогательные (переменные в разделе VAR процедуры, неизвестны основной программе);
2) глобальные (объявляются в разделе VAR основной программы, могут фигурировать в основной программе и теле процедуры).
Одна и та же переменная может быть локальной и глобальной, т.к. компилятор отводит отдельные ячейки памяти для каждой переменной
Процедуры с параметрами-значениями.
Под параметром понимается имя переменной, которое является входной для процедуры. При его описании не требуется служебное слово VAR. Параметры-значения при вызове процедуры принимают из основной программы свои значения. При обращении к процедуре с параметрами значениями в основной программе могут служить имена переменных и конкретные значения выражения. При обращении необходимо соблюдать соответствия списков параметров, а также их типов.
Процедуры с параметрами-переменными.
В отличие от процедур с параметрами значениями, процедуры с параметрами-переменными не имеют входных параметров. Из основной программы не передаются значения переменных в процедурах, за исключением глобальных переменных. Параметрам-переменным должно предшествовать слово VAR столько раз, сколько различных типов представлено в выходных данных.
PROCEDURE PRIMER (VAR a,b,c:integer; VAR m:CHAR; VAR i,j:real);
При обращении к процедурам с параметрами-переменными фактическими параметрами являются имена переменных, которые описаны в основной программе.
Program pr1;
Uses crt;
Var a,b,s:real;
Procedure summa (var x,y:real; var z:real); {x,y – параметры значения z - переменные}
Begin
z:=x+y;
end;
begin
clrscr;
writeln (‘Vvedite a,b’);
readln (a,b);
summa (a,b,s);
writeln (‘summa chisel’, a:3:1, ‘and’, b:3:1, ‘=’, s:3:1);
readln;
end.
11.Паскаль имеет набор стандартных функций. Однако он граничен. Но пользователь может расширить список функций, добавив свои. Список стандартных функций:
Подпрограмма-функция предназначена для вычисления какого-либо параметра.
FUNCTION имя (список параметров:тип):тип;
FUNCTION имя:тип;
Тип результата есть тип значения функции. Список параметров такой же как и у процедуры, только здесь все параметры-аргументы. Имя переменной, которая хранит значение функции совпадает с именем самой функции. Другой особенностью написания функции является наличие в нем хотя бы одного оператора присваивания, в левой части которого стоит имя определяемой функции, а в правой – выражение для вычисления результата функции. Функция вызывается только с помощью некоторого выражения. Для того, чтобы обратиться к функции необходимо использовать ее имя со списком фактических параметров в каком-либо выражении, тип которого совпадает с типом значения функции. Таким образом, функции имеет ряд отличий от процедур. Первое отличие функции в ее заголовке. Он состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров, затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного типа string. Второе отличие заключается в том, что в теле функции хотя бы раз имени функции должно быть присвоено значение.
program p2;
var f, b, s, t, c, d : real; { глобальные параметры}
function stp (a, x : real) : real;
var y : real; { локальные параметры}
begin
y := exp (x * ln ( a)) ;
stp:= y;{присвоение имени функции результата вычислений подпр-мы}
end; { описание функции закончено }
begin {начало основной программы }
d:= stp (2.4, 5); {вычисление степеней разных чисел и переменных }
writein (d, stp (5,3.5));
read (f, b, s, t); c := stp (f, s)+stp (b, t);
writeln (c);
end.
12.Функция – это подпрограмма, предназначенная для вычисления какого-либо параметра.
Рекурсия – это такой способ организации вычислительного процесса, при котором подпрограмма в ходе выполнения составляющих ее операторов обращается сама к себе. Эта возможность связана с тем, что при каждом новом обращении к подпрограмме параметры, которые она использует, заносятся в стек, причем параметры предыдущего обращения также сохраняются.
Термин рекуррентные соотношения связан с американским научным стилем и определяет математическое задание функции с помощью рекурсии. При каждом обращении к рекурсивной функции в стеке выделяется место для: адреса возврата в вызывающую функцию и вершины стека вызывающей функции (4 байта), списка фактических параметров (может быть пустым), локальных переменных рекурсивной функции (могут отсутствовать).
Наличие в задаче рекуррентного соотношения позволяет использовать рекурсию. Например, арифметическая прогрессия – последовательность чисел, в которой разность между последующими и предыдущими членами остается неизменной и называется разностью прогрессии. То есть каждый следующий член прогрессии равен предыдущему, увеличенному на разность прогрессии.
13. Массивы – объединение фиксированного числа однотипных величин. Они относятся к структуре прямого доступа, это достигается путем индексации его элементов. Массивы: одномерные и двумерные.
Двумерные массивы.
Двумерный массив представляет собой таблицу, он является матрицей. Потому для определения позиции элемента в таком массиве необходимы два индекса. Двумерные массивы описывают путем указания границ изменения индексов строк и столбцов. Объявление двумерного массива похоже на объявление одномерного, отличается лишь индексация.
VAR M:array [1..20, 1..10] of REAL; {20 строк, 10 столбцов}
M[10,5] - элемент 10 строки, 5 столбца
M[i,j] – общее обозначение
Массив принадлежит к структурным величинам.
TYPE- раздел типов, после пишется имя вводимого типа, а затем после знака «=» определяется этот тип.
TYPE massiv=array [1..20,1..10] of REAL;
VAR M:massiv;
CONST – раздел констант, используется для задания числа строк и столбцов.
CONST m=20; n=10;
VAR M:array [1..m, 1..n] of REAL;
При работе с двумерными массивами принято организовывать ввод и вывод массива с помощью соответствующих процедур. Если ввод и вывод осуществляется с помощью процедур, то должен быть определен тип массива с помощью служебного слова TYPE, т.к. в самой процедуре объявлять массив служебными словами запрещено!
Процедура ввода:
PROCEDURE VVODMAS(VAR M:massiv);
BEGIN
FOR i:=1 to m DO
FOR j:=1 to n DO
M [i,j]:=-50+RANDOM(100);
END;
Процедура вывода:
PROCEDURE VIVODMAS(VAR M:massiv);
BEGIN
FOR i:=1 to m DO
BEGIN
FOR j:=1 to n DO
WRITELN (M[i,j]:5];
WRITELN;
END;
END;
14.Массивы – объединение фиксированного числа однотипных величин. Они относятся к структуре прямого доступа, это достигается путем индексации его элементов. Массивы: одномерные и двумерные.
Одномерные массивы.
Индекс позволяет обратиться к любому элементу прямым путем -->каждый элемент массива характеризуется общим именем и персональным индексом. Массив требует объявления в разделе объявлений.
1)имя массива, общее для всех элементов;
2)тип компонента;
3)указание числа элементов и одновременно указывается чем индексируются элементы;
4)служебное слово, указывающее, что это именно массив.
VAR M:array [тип индекса] of ТИП КОМПОНЕНТЫ;
Нет никаких ограничений для типов компонент (за исключением файла). Для объединенных массивов можно использовать: целые числа, вещественные числа, CHAR, записи, строки и т.д.
Тип той величины, которой индексируют элементы массива, может быть только ординальным! (нельзя !!!REAL).
VAR M:array [1..10] of REAL;
N:array [‘A’..’z’] of INTEGER;
Раздел типов TYPE служит для формирования своих структурных типов.
TYPE mas=array [1..10] of REAL;
VAR M:mas;
Обработка массивов.
Программы работы с массивами имеют следующую структуру:
1) задание самого массива;
2) обработка массива;
3) вывод нового результирующего массива.
Любая программа начинается с заполнения массива. Элемент массива является просто переменной. Способы задания:
1) read (M[i]);
2) M[i]:=(2*3-15)/3
3) Заполнение случайными числами
· Randomize – процедура датчиков случайных чисел, сразу за BEGIN
BEGIN
RANDOMIZE;
· Random(N) – функция одного элемента типа INTEGER, порождает целые числа от 0 до N-1.
RANDOM(101)+1;
FOR i:=1 to N DO
M[i]:=-50+RANDOM(101);
Вывод элементов массива на экран:
· в столбец WRITELN(M[i]);
· в строку WRITE(M[i], ‘ ‘);
15. Строка – последовательность символов, т.е. последовательность элементов типа CHAR. Строковая константа – последовательность символов, заключенная в апострофы.
‘informatika’
‘monitor’
‘abc35ed’
В Паскале длина строки ограничена - 255 символов.
STRING – строка, величина с нефиксированной длиной символов, в этом ее преимущество от одномерного массива.
VAR ST:STRING; {255 байт на хранение}
VAR ST:STRING[N]; {N-граница сверху}
Индексация принудительная, обязательно с 1!
Операции над строками.
1) Операция склеивания (соединения). Конкатенация – склеивание строк. Можно склеить сразу несколько.
‘abc’+’cde’=’abccde’
‘cde’+’abc’=’cdeabc’
2) Операции сравнения: =, <, >, <>.
При сравнении строк осуществляется посимвольное сравнение, начиная с младшего байта.
1 этап. Система программирования смотрит на нулевые байты.
2 этап. Если нулевые байты равны, то проверяются остальные символы
Две строки равны если все элементы соответственно равны друг другу.
‘папа’>’мама’, т.к. «м»<«п».
16. Процедуры и функции работы со строками.
Строка – последовательность символов, т.е. последовательность элементов типа CHAR.
Функции:
1) Concat – склеивание строк.
Concat (S1,S2,S3..SN);
ST:=CONCAT(‘infor’,’matika’);
ST:=’informatika’;
Без нее можно обходиться, склеивать строки операцией конкатенации. Все аргументы и значения функции типа STRING;
2) LENGTH – длина одной единственной строки. Значение – величина типа INTEGER.
N:=length(ST);
Write (S[length(S)]);
3) COPY - копирование фрагмента одной строки в другую строку. Образование новой строки из существующей.
COPY (ST,N1,n);
3 аргумента: строка, две величины типа INTEGER;
N1 - № символа, извлекаемого объекта;
n - число извлекаемых символов.
Значение этой функции – величина типа STRING.
ST:=’informatika’;
ST1:=COPY(ST,3,3);
ST1:=’for’;
Для извлечения, например, одного символа, третьим параметром является 1. Строка ST не меняется!
4) POS - от слова позиция, определяется позиция вхождения строки ST1 в строку ST2. ST1 является фрагментом ST2. Не может быть отрицательным.
POS (ST1, ST2);
POS (‘for’,’informatika’);
Процедуры.
1) DELETE –уничтожение символа или фрагмента.
DELETE (ST1,ST2,n);
ST:=’informatika’;
DELETE (ST,3,3); ST:=’inmatika’;
2) INSERT – вставка фрагмента внутрь строки.
INSERT (ST1,ST2,n);
ST1 вставляется в ST2, начиная с n позиции.
FOR
(цикл с параметром).
FOR i:=n1 TO n2 DO <оператор>;
n1 – начальное значение, n2 – конечное значение.
Данный цикл предназначен для организации циклов, когда заранее известно сколько раз должно повториться тело цикла.
Работа оператора FOR:
1) вычисляются начальное и конечное значения;
2) параметр цикла получает начальное значение;
3) проверяется условие : параметр цикла <= конечное значение;
4) если условие истинно, то выполняется тело цикла, в противном случае работа цикла прекращается;
5) параметр цикла увеличивается на 1;
6) переходим к пункту 3.
Итерационные циклы.
Оператор
WHILE
(ЦИКЛ с предусловием).
WHILE <условие> DO <оператор>;
Выполнение оператора цикла начинается с проверки условия, записанного после слова WHILE, если оно выполняется, то выполняется тело цикла, а затем вновь идет проверка условия. Как только на очередном шаге окажется, что выполнение не соблюдается, выполнение цикла прекращается. Условие вычисляется и анализируется перед каждым выполнением цикла (отсюда и берется термин предусловия).Рекомендации:
1) в условии, как в логическом выражении, должны обязательно фигурировать переменные, изменяющие свои значения в теле цикла;
2) во избежание зацикливания лучше сначала написать условие прекращения цикла и взять потом его отрицание;
3) переменные логического выражения должны получить свои исходные значения до входа в оператор WHILE.
Оператор
REPEAT
(цикл с постусловием).
REPEAT <тело_цикла> UNTIL <условие>;
Оператор REPEAT называется оператором цикла с постусловием, т.к. здесь выражение, управляющее повторным циклом, размещается после тела цикла. Последовательность операторов, входящих в тело цикла, выполняется один раз, после чего идет проверка условия, записанного за служебным словом UNTIL. Если условие соблюдается – цикл завершается, в противном случае тело цикла повторяется еще раз, после чего снова идет проверка условия.
! В операторе REPEAT проверка условия выхода из цикла выполняется в конце, а не в начале цикла, как в операторе WHILE. Поэтому в операторе REPEAT тело цикла выполняется хотя бы один раз. В операторе REPEAT выход из цикла осуществляется по истинности условия, а в WHILE – по ложности.
Program with_for;
VAR x,y:integer;
BEGIN
x:=5
FOR y:=2 TO 10 DO
x:=x+2;
WRITELN(x);
READLN;
END.
PROGRAM WITH_WHILE;
VAR a,b:ineger;
BEGIN
a:=2; b:=3;
WHILE b<=15 DO
BEGIN
a:=a+2; b:=b+3;
END;
WRITELN (a); READLN;
END.
PROGRAM WITH_repeat;
VAR a,b:ineger;
BEGIN
a:=2; b:=3;
repeat a:=a+2; b:=b+3;
until b<=15;
WRITELN (a)READLN;
END.
10. Подпрограмма — поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы.
Процедура – именованная последовательность инструкций, реализующая некоторое действие, подпрограмма с параметрами.
Процедуры: с параметрами значениями, с параметрами переменными.
Переменные:
1) локальные (объявляются внутри блока)
· формальные(параметры заголовка процедуры);
· вспомогательные (переменные в разделе VAR процедуры, неизвестны основной программе);
2) глобальные (объявляются в разделе VAR основной программы, могут фигурировать в основной программе и теле процедуры).
Одна и та же переменная может быть локальной и глобальной, т.к. компилятор отводит отдельные ячейки памяти для каждой переменной
Процедуры с параметрами-значениями.
Под параметром понимается имя переменной, которое является входной для процедуры. При его описании не требуется служебное слово VAR. Параметры-значения при вызове процедуры принимают из основной программы свои значения. При обращении к процедуре с параметрами значениями в основной программе могут служить имена переменных и конкретные значения выражения. При обращении необходимо соблюдать соответствия списков параметров, а также их типов.
Процедуры с параметрами-переменными.
В отличие от процедур с параметрами значениями, процедуры с параметрами-переменными не имеют входных параметров. Из основной программы не передаются значения переменных в процедурах, за исключением глобальных переменных. Параметрам-переменным должно предшествовать слово VAR столько раз, сколько различных типов представлено в выходных данных.
PROCEDURE PRIMER (VAR a,b,c:integer; VAR m:CHAR; VAR i,j:real);
При обращении к процедурам с параметрами-переменными фактическими параметрами являются имена переменных, которые описаны в основной программе.
Program pr1;
Uses crt;
Var a,b,s:real;
Procedure summa (var x,y:real; var z:real); {x,y – параметры значения z - переменные}
Begin
z:=x+y;
end;
begin
clrscr;
writeln (‘Vvedite a,b’);
readln (a,b);
summa (a,b,s);
writeln (‘summa chisel’, a:3:1, ‘and’, b:3:1, ‘=’, s:3:1);
readln;
end.
11.Паскаль имеет набор стандартных функций. Однако он граничен. Но пользователь может расширить список функций, добавив свои. Список стандартных функций:
ACOS | вычисляет арккосинус |
ASIN | вычисляет арксинус |
ATAN | вычисляет арктангенс |
ATN2 | вычисляет арктангенс с учетом квадратов |
COS | вычисляет косинус угла |
COT | возвращает котангенс угла |
EXP | возвращает экспоненту |
FLOOR | выполняет округление вниз |
LOG | вычисляет натуральный логарифм |
LOG10 | вычисляет десятичный логарифм |
PI | возвращает значение "пи" |
POWER | возводит число в степень |
RADIANS | преобразует значение угла из градуса в радианы |
RAND | возвращат случайное число |
ROUND | выполняет округление с заданной точностью |
SIN | вычисляет синус угла |
SQRT | извлекает квадратный корень |
TAN | возвращает тангенс угла |
Подпрограмма-функция предназначена для вычисления какого-либо параметра.
FUNCTION имя (список параметров:тип):тип;
FUNCTION имя:тип;
Тип результата есть тип значения функции. Список параметров такой же как и у процедуры, только здесь все параметры-аргументы. Имя переменной, которая хранит значение функции совпадает с именем самой функции. Другой особенностью написания функции является наличие в нем хотя бы одного оператора присваивания, в левой части которого стоит имя определяемой функции, а в правой – выражение для вычисления результата функции. Функция вызывается только с помощью некоторого выражения. Для того, чтобы обратиться к функции необходимо использовать ее имя со списком фактических параметров в каком-либо выражении, тип которого совпадает с типом значения функции. Таким образом, функции имеет ряд отличий от процедур. Первое отличие функции в ее заголовке. Он состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров, затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного типа string. Второе отличие заключается в том, что в теле функции хотя бы раз имени функции должно быть присвоено значение.
program p2;
var f, b, s, t, c, d : real; { глобальные параметры}
function stp (a, x : real) : real;
var y : real; { локальные параметры}
begin
y := exp (x * ln ( a)) ;
stp:= y;{присвоение имени функции результата вычислений подпр-мы}
end; { описание функции закончено }
begin {начало основной программы }
d:= stp (2.4, 5); {вычисление степеней разных чисел и переменных }
writein (d, stp (5,3.5));
read (f, b, s, t); c := stp (f, s)+stp (b, t);
writeln (c);
end.
12.Функция – это подпрограмма, предназначенная для вычисления какого-либо параметра.
Рекурсия – это такой способ организации вычислительного процесса, при котором подпрограмма в ходе выполнения составляющих ее операторов обращается сама к себе. Эта возможность связана с тем, что при каждом новом обращении к подпрограмме параметры, которые она использует, заносятся в стек, причем параметры предыдущего обращения также сохраняются.
Термин рекуррентные соотношения связан с американским научным стилем и определяет математическое задание функции с помощью рекурсии. При каждом обращении к рекурсивной функции в стеке выделяется место для: адреса возврата в вызывающую функцию и вершины стека вызывающей функции (4 байта), списка фактических параметров (может быть пустым), локальных переменных рекурсивной функции (могут отсутствовать).
Наличие в задаче рекуррентного соотношения позволяет использовать рекурсию. Например, арифметическая прогрессия – последовательность чисел, в которой разность между последующими и предыдущими членами остается неизменной и называется разностью прогрессии. То есть каждый следующий член прогрессии равен предыдущему, увеличенному на разность прогрессии.
13. Массивы – объединение фиксированного числа однотипных величин. Они относятся к структуре прямого доступа, это достигается путем индексации его элементов. Массивы: одномерные и двумерные.
Двумерные массивы.
Двумерный массив представляет собой таблицу, он является матрицей. Потому для определения позиции элемента в таком массиве необходимы два индекса. Двумерные массивы описывают путем указания границ изменения индексов строк и столбцов. Объявление двумерного массива похоже на объявление одномерного, отличается лишь индексация.
VAR M:array [1..20, 1..10] of REAL; {20 строк, 10 столбцов}
M[10,5] - элемент 10 строки, 5 столбца
M[i,j] – общее обозначение
Массив принадлежит к структурным величинам.
TYPE- раздел типов, после пишется имя вводимого типа, а затем после знака «=» определяется этот тип.
TYPE massiv=array [1..20,1..10] of REAL;
VAR M:massiv;
CONST – раздел констант, используется для задания числа строк и столбцов.
CONST m=20; n=10;
VAR M:array [1..m, 1..n] of REAL;
При работе с двумерными массивами принято организовывать ввод и вывод массива с помощью соответствующих процедур. Если ввод и вывод осуществляется с помощью процедур, то должен быть определен тип массива с помощью служебного слова TYPE, т.к. в самой процедуре объявлять массив служебными словами запрещено!
Процедура ввода:
PROCEDURE VVODMAS(VAR M:massiv);
BEGIN
FOR i:=1 to m DO
FOR j:=1 to n DO
M [i,j]:=-50+RANDOM(100);
END;
Процедура вывода:
PROCEDURE VIVODMAS(VAR M:massiv);
BEGIN
FOR i:=1 to m DO
BEGIN
FOR j:=1 to n DO
WRITELN (M[i,j]:5];
WRITELN;
END;
END;
14.Массивы – объединение фиксированного числа однотипных величин. Они относятся к структуре прямого доступа, это достигается путем индексации его элементов. Массивы: одномерные и двумерные.
Одномерные массивы.
Индекс позволяет обратиться к любому элементу прямым путем -->каждый элемент массива характеризуется общим именем и персональным индексом. Массив требует объявления в разделе объявлений.
1)имя массива, общее для всех элементов;
2)тип компонента;
3)указание числа элементов и одновременно указывается чем индексируются элементы;
4)служебное слово, указывающее, что это именно массив.
VAR M:array [тип индекса] of ТИП КОМПОНЕНТЫ;
Нет никаких ограничений для типов компонент (за исключением файла). Для объединенных массивов можно использовать: целые числа, вещественные числа, CHAR, записи, строки и т.д.
Тип той величины, которой индексируют элементы массива, может быть только ординальным! (нельзя !!!REAL).
VAR M:array [1..10] of REAL;
N:array [‘A’..’z’] of INTEGER;
Раздел типов TYPE служит для формирования своих структурных типов.
TYPE mas=array [1..10] of REAL;
VAR M:mas;
Обработка массивов.
Программы работы с массивами имеют следующую структуру:
1) задание самого массива;
2) обработка массива;
3) вывод нового результирующего массива.
Любая программа начинается с заполнения массива. Элемент массива является просто переменной. Способы задания:
1) read (M[i]);
2) M[i]:=(2*3-15)/3
3) Заполнение случайными числами
· Randomize – процедура датчиков случайных чисел, сразу за BEGIN
BEGIN
RANDOMIZE;
· Random(N) – функция одного элемента типа INTEGER, порождает целые числа от 0 до N-1.
RANDOM(101)+1;
FOR i:=1 to N DO
M[i]:=-50+RANDOM(101);
Вывод элементов массива на экран:
· в столбец WRITELN(M[i]);
· в строку WRITE(M[i], ‘ ‘);
15. Строка – последовательность символов, т.е. последовательность элементов типа CHAR. Строковая константа – последовательность символов, заключенная в апострофы.
‘informatika’
‘monitor’
‘abc35ed’
В Паскале длина строки ограничена - 255 символов.
STRING – строка, величина с нефиксированной длиной символов, в этом ее преимущество от одномерного массива.
VAR ST:STRING; {255 байт на хранение}
VAR ST:STRING[N]; {N-граница сверху}
Индексация принудительная, обязательно с 1!
Операции над строками.
1) Операция склеивания (соединения). Конкатенация – склеивание строк. Можно склеить сразу несколько.
‘abc’+’cde’=’abccde’
‘cde’+’abc’=’cdeabc’
2) Операции сравнения: =, <, >, <>.
При сравнении строк осуществляется посимвольное сравнение, начиная с младшего байта.
1 этап. Система программирования смотрит на нулевые байты.
2 этап. Если нулевые байты равны, то проверяются остальные символы
Две строки равны если все элементы соответственно равны друг другу.
‘папа’>’мама’, т.к. «м»<«п».
16. Процедуры и функции работы со строками.
Строка – последовательность символов, т.е. последовательность элементов типа CHAR.
Функции:
1) Concat – склеивание строк.
Concat (S1,S2,S3..SN);
ST:=CONCAT(‘infor’,’matika’);
ST:=’informatika’;
Без нее можно обходиться, склеивать строки операцией конкатенации. Все аргументы и значения функции типа STRING;
2) LENGTH – длина одной единственной строки. Значение – величина типа INTEGER.
N:=length(ST);
Write (S[length(S)]);
3) COPY - копирование фрагмента одной строки в другую строку. Образование новой строки из существующей.
COPY (ST,N1,n);
3 аргумента: строка, две величины типа INTEGER;
N1 - № символа, извлекаемого объекта;
n - число извлекаемых символов.
Значение этой функции – величина типа STRING.
ST:=’informatika’;
ST1:=COPY(ST,3,3);
ST1:=’for’;
Для извлечения, например, одного символа, третьим параметром является 1. Строка ST не меняется!
4) POS - от слова позиция, определяется позиция вхождения строки ST1 в строку ST2. ST1 является фрагментом ST2. Не может быть отрицательным.
POS (ST1, ST2);
POS (‘for’,’informatika’);
Процедуры.
1) DELETE –уничтожение символа или фрагмента.
DELETE (ST1,ST2,n);
ST:=’informatika’;
DELETE (ST,3,3); ST:=’inmatika’;
2) INSERT – вставка фрагмента внутрь строки.
INSERT (ST1,ST2,n);
ST1 вставляется в ST2, начиная с n позиции.