
Билет №1
Информация – сведения об объектах и явлениях окружающей среды, их параметрах, свойствах и состоянии, которые воспринимают информационные системы (живые организмы, управляющие машины и др.) в процессе жизнедеятельности и работы.
Применительно к компьютерной обработке данных под информацией понимают некоторую последовательность символических обозначений (букв, цифр, закодированных графических образов и звуков и т.п.), несущую смысловую нагрузку и представленную в понятном компьютеру виде. Каждый новый символ в такой последовательности символов увеличивает информационный объём сообщения.
Информация может существовать в виде:
текстов, рисунков, чертежей, фотографий;
световых или звуковых сигналов;
радиоволн;
электрических и нервных импульсов;
магнитных записей;
жестов и мимики;
запахов и вкусовых ощущений;
хромосом, посредством которых передаются по наследству признаки и свойства организмов и т.д.
Информацию можно:
создавать;
передавать;
воспринимать;
использовать;
запоминать;
принимать;
копировать;
формализовать;
распространять;
преобразовывать;
комбинировать;
обрабатывать;
делить на части;
упрощать;
собирать;
хранить;
искать;
измерять;
разрушать;
и др.
Информация передаётся в виде сообщений от некоторого источника информации к её приёмнику посредством канала связи между ними. Источник посылает передаваемое сообщение, которое кодируется в передаваемый сигнал. Этот сигнал посылается по каналу связи. В результате в приёмнике появляется принимаемый сигнал, который декодируется и становится принимаемым сообщением.
Свойства информации:
достоверность;
полнота;
ценность;
своевременность;
понятность;
доступность;
краткость;
и др.
Обработка информации – получение одних информационных объектов из других информационных объектов путем выполнения некоторых алгоритмов.
Информационные ресурсы – это идеи человечества и указания по их реализации, накопленные в форме, позволяющей их воспроизводство.
Информационная технология – это совокупность методов и устройств, используемых людьми для обработки информации.
Информатизация общества – организованный социально-экономический и научно-технический процесс создания оптимальных условий для удовлетворения информационных потребностей и реализации прав граждан, органов государственной власти, органов местного самоуправления организаций, общественных объединений на основе формирования и использования информационных ресурсов.
Билет №2
Языки программирования высокого уровня
1954: Фортран (FORTRAN от FORmula TRANslator – транслятор, или переводчик формул), IВМ. Руководитель группы разработчиков – Джон Бэкус.
В 1958: Lisp – язык для обработки списков. Получил достаточно широкое распространение в системах искусственного интеллекта.
Потомки: Planner (1967), Scheme (1975), Common Lisp (1984).
1960: Algol-60. Руководитель команды разработчиков – Петер Наур (Peter Naur).
1960: Cobol.
1964: Basic. Авторы - профессора из Dartmouth College – Джон Кенеми и Томас Куртц.
1991: Visual Basic.
1965: РЕФАЛ (Турчин, МГУ)
1967: PL/1 (IBM).
1968: Algol-68. Руководитель – Петер Наур
1970: Pascal. Никлаус Вирт.
1978: Modula-2 (1978). 1988: Modula-3
Oberon и Oberon-2. ООП.
1972: “C”. Керниган, Денис Ритчи. ОС UNIX.
1971: Prolog.
1983: ADA (Ада Лавлейс). Дж. Ишбиа.
1983: C++. Бьярн Страуструп.
1995: Java. Кен Арнольд и Джеймс Гослинг (Sun Microsystems). Java Virtual Machine.
1995: JavaScript (Mocha, LiveScript). Netscape Communications.
1999: C#. Андерс Хейльсберг (MicroSoft).
VBScript. MicroSoft.
Жизненный цикл программного обеспечения (ПО) – период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл – процесс построения и развития ПО.
Модели жизненного цикла ПО.
Водопадная модель жизненного цикла (англ. waterfall model) была предложена в 1970 году Уинстоном Ройсом. Она предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.
Этапы проекта в соответствии с каскадной моделью:
1. Формирование требований;
2. Проектирование;
3. Реализация;
4. Тестирование;
5. Внедрение;
6. Эксплуатация и сопровождение.
Существуют также:
Итерационная модель;
Спиральная модель (разработана в середине 1980-х годов Барри Боэмом).
Интегрированная среда разработки, ИСР (англ. IDE, Integrated development environment или integrated debugging environment) – система программных средств, используемая программистами для разработки программного обеспечения (ПО).
Обычно среда разработки включает в себя:
• текстовый редактор
• компилятор и/или интерпретатор
• средства автоматизации сборки
• отладчик.
Частный случай IDE – среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы.
Билет №3
Три группы правил (как для разговорных языков, так и для языков программирования)
Синтактика (правила построения сообщений)
Семантика (правила придания сообщениям смысла)
Прагматика (правила использования сообщений)
Языковые конструкции, составляющие текст программного кода:
Функциональный блок (структура «Следование»)
Конструкция двоичного разветвления (структура «Развилка»)
Итерация (структура «Цикл»)
№ уровня |
Разговорный язык |
Язык программирования |
1 |
Буквы |
Символы |
2 |
Слова |
Элементарные конструкции |
3 |
Словосочетания |
Выражения |
4 |
Предложения |
Операторы |
1. Символы языка – символы с кодами 32 . . 127. Символы с кодами 128 . . 255 (в том числе и русские буквы) разрешаются только тогда, когда об этом специально сказано.
2. Элементарные конструкции – это имена, числа и строки.
3. Выражения – конструкции языка, задающие порядок вычисления какого-либо значения.
4. Операторы – минимальные конструкции языка, порождающие какие-либо действия компьютера.
Операторы бывают простые и структурированные.
Простые операторы:
4.1. Оператор присваивания
x := y + z |
(В языке “C++”: x = y + z ) |
4.2. Оператор вызова процедуры
ReadKey |
(В языке “C++”: getch() ) |
4.3. Оператор перехода на метку
goto M1 GoTo M1 |
(В языке “C++”: goto M1 ) |
…
M1:
4.4. Пустой оператор
Структурированные операторы:
1. Составной оператор (блок?)
2. Условный оператор
3. Оператор цикла
Билет №4
Переменная – поименованная область данных в оперативной памяти.
Тип переменной определяет множество значений, которые переменная может принять, и множество операций, которые над переменной можно производить.
Порядковая переменная – переменная, для каждого значения которой может быть названо следующее (например, с помощью функции Succ) и предыдущее (например, с помощью функции Pred)значение. Переменные непорядковых типов не могут быть аргументами (параметрами) функций Succ и Pred.
(В языке “C++” понятие порядкового типа не используется)
К порядковым типам относятся:
1. Базовые целочисленные
Тип переменной |
Диапазон значений |
Объём памяти |
Integer |
–2147483648..2147483647 |
4 |
Cardinal |
0..4294967295 |
4 |
2. Дополнительные целочисленные
Тип переменной |
Диапазон значений |
Объём памяти |
Shortint |
–128..127 |
1 |
Smallint |
–32768..32767 |
2 |
Longint |
–2147483648..2147483647 |
4 |
Int64 |
–2^63..2^63–1 |
8 |
Byte |
0..255 |
1 |
Word |
0..65535 |
2 |
Longword |
0..4294967295 |
4 |
3. Символьные
Тип переменной |
Диапазон значений |
Объём памяти |
Char |
Chr(0)..Chr(255) |
1 |
4. Прочие, о которых позже будет специально сообщено, как о порядковых типах (перечисляемые, тип-диапазон, …)
Остальные типы переменных порядковыми не являются.
Числовые вещественные типы
Тип переменной |
Диапазон значений |
Число знаков |
Объём памяти |
Real48 |
2.9*10–39 .. 1.7*1038 |
11–12 |
6 |
Single |
1.5*10–45 .. 3.4*1038 |
7–8 |
4 |
Double |
5.0*10–324 .. 1.7*10308 |
15–16 |
8 |
Extended |
3.6*10–4951 .. 1.1*104932 |
19–20 |
10 |
Comp |
–263+1 .. 263 –1 |
19–20 |
8 |
Currency |
-22337203685477.5808.. 922337203685477.5807 |
19–20 |
8 |
Строковый тип
Тип переменной |
Длина |
Диапазон значений |
Объём памяти |
String |
1..255 |
— |
2..256 |
String[<Число>] |
1.. <Число> |
1≤<Число>≤255 |
<Число>+1 |
AnsiString |
231 |
|
4B..2GB |
WideString |
230 |
|
4B..2GB |
Логический тип
Тип переменной |
Множество значений |
Объём памяти |
Boolean |
False (0), True (1) |
4 |
Все переменные, используемые в программе, написанной на языке Pascal (и на языке “C++”), должны быть объявлены (описаны).
Var
A, b, myint : integer;
Lol : Boolean;
Существуют языки программирования, в которых описание переменных является делом необязательным (Fortran, Basic) или даже делом невозможным (Cliper).
Билет №5
Структура простейшей (состоящей из одного файла) программы на языке Pascal:
[ Program <Имя>;]
[<Ключи компиляции> ]
[uses <Список используемых устройств (модулей)>; ]
<Разделы объявления (описания) переменных, констант, типов, меток>
<Раздел объявления (описания) процедур и функций>
<Раздел исполнения>
Структура модуля на языке Pascal (Delphi):
unit <Имя>;
interface
[<Ключи компиляции> ]
[uses <Список используемых устройств (модулей)>; ]
[<Разделы объявления глобальных переменных, констант, типов, классов>]
[<Раздел объявления заголовков глобальных процедур и функций>]
implementation
[<Ключи компиляции> ]
[uses <Список используемых устройств (модулей)>; ]
[<Разделы объявления локальных переменных, констант, типов, классов >]
[<Раздел объявления локальных процедур и функций>]
[<Раздел исполнения>]
<Раздел исполнения> :: =
begin
<Операторы>
end
<Раздел объявления переменных> :: =
var // Признак начала раздела объявления переменных
<Список имён 1>: <Тип 1>;
<Список имён 2>: <Тип 2>;
. . .
Билет №6
Пример запуска программы с помощью командной строки:
<Путь к EXE-файлу>P2.exe 1 22 333 4444 55555
Кроме указания пути к исполняемому файлу, командная строка содержит список параметров запуска, которые могут быть распознаны и использованы программой. Разделитель элементов списка – пробел. Если пробел заменён группой из нескольких подряд идущих пробелов, эта группа воспринимается как один пробел.
Pascal: Для нахождения числа параметров программы служит стандартная (для TP7, Delphi, Lazarus) функция ParamCount (это функция без параметров). Благодаря этой функции становится известно, сколько параметров имеется в командной строке. Для обращения к самим параметрам служит стандартная функция ParamStr. Например, ParamStr(i) возвращает строку, содержащую i-й параметр программы.
C++
Число параметров программы на единицу меньше, чем значение первого формального параметра функции _tmain. Второй параметр функции _tmain представляет собой массив строк, содержащих параметры программы. Например, argv[i] есть строка, содержащую i-й параметр программы. argv[0] есть строка с именем самого EXE-файла и путём к нему.
Билет №7
begin
<Операторы>
end
Условный оператор (развилка)
1. Упрощенная (сокращенная) развилка. <Л.В.> – логическое выражение.
2. Классическая развилка
3. Вложенная развилка
Билет №8
<Раздел объявления констант без типа> : : =
const
<Имя константы 1> = <Константное выражение 1> ;
<Имя константы 2> = < Константное выражение 2> ;
. . .
Пример
const
m = 226 ;
e = 2.718281828459045 ;
e2 = e * e ;
c = „Щ‟ ;
s = „Это строка‟ ;
<Раздел объявления типизированных констант> : : =
const
<Имя константы 1> : <Тип 1> = < Константное выражение 1> ;
<Имя константы 2> : <Тип 2> = < Константное выражение 2> ;
. . .
Пример
const
n: longint = 2000000000;
EulerGamma: double = 0.5772156649015329;
В константных выражениях можно применять числа, строки, знаки операций,
имена уже объявленных констант, а также функции:
Abs, Chr, High, Length, Lo, Low, Odd, Ord, Pi, Ptr, Round,
SizeOf, Succ, Swap, Trunc.
NB! Перед then нужна ;
Билет №9
Цикл с параметром (1-й вариант)
for <Параметр> := <Начальн. знач.> to <Конечн. знач.> do <Оператор>
<Параметр> может быть только порядковой переменной.
<Начальн. знач.> и <Конечн. знач.> могут быть только выражениями порядкового типа.
Шаг изменения переменной <Параметр> равен (+1).
<Оператор> является телом цикла. Он выполняется столько раз, сколько значений примет <Параметр>, изменяясь от <Начальн. знач.> до <Конечн. знач.> с шагом (+1).
Если <Начальн. знач.> больше, чем <Конечн. знач.>, то тело цикла не выпоняется ни разу.
Замечание. В языке «C++» аналогичная конструкция имеет вид:
for (<Параметр> = <Начальн. знач.>;
<Параметр> <= <Конечн. знач.> ;
<Параметр>++ )
<Оператор>
<Параметр> может быть переменной «непорядкового» (в терминологии языка Pascal) типа. Например, может быть переменной типа Double.
Цикл с параметром (2-й вариант)
for <Параметр> := <Начальн. знач.> downto <Конечн. знач.> do <Оператор>
Шаг изменения переменной <Параметр> равен (–1).
<Оператор> (тело цикла) выполняется столько раз, сколько значений примет <Параметр>, изменяясь от <Начальн. знач.> до <Конечн. знач.> с шагом (–1).
Если <Начальн. знач.> меньше, чем <Конечн. знач.>, то тело цикла не выполняется ни разу.
Возможные ошибки:
Turbo Pascal 7.0:
(* for I := 1 to 4 do; writeln(‘I=’, I); *)
/*for I := 1 to 4 do;
Writeln(‘I=’, I); */
Результат: I=4 (TP7)
Язык «C++»:
// for (I = 1; I <= 4; I++); printf(“I=%d”, I);
/*for (I = 1; I <= 4; I++);
printf(“I=%d”, I); */
Результат: I=5
Билет №10
Цикл с постусловием
repeat <Операторы> until <Л.В.>
<Операторы> являются телом цикла.
Тело цикла выполняется по меньшей мере один раз, а затем, возможно, многократно, пока < Л.В.> есть ложь.
Если < Л.В.> есть истина при первой же оценке, то тело цикла выполняется один раз.
Если < Л.В.> есть ложь при каждой оценке, то тело цикла выполняется неограниченно много раз.
Инструкция break применяется для досрочного прекращения цикла. Равноценна оператору “goto Metka1”, для которого “Metka1:”расположена сразу после оператора цикла.
Инструкция continue применяется для досрочного перехода на очередную проверку условия продолжения цикла.
Равноценна оператору “goto Metka2”, для которого “Metka2:” расположена сразу после последнего из операторов, составляющих тело цикла.
Цикл с предусловием
While <Л.В.> do<условие>
Билет №11
Процедуры
<Объявление процедуры> : : =
procedure <Имя процедуры>[(<Список формальных параметров>)];
[<Разделы объявления локальных типов, констант, переменных>]
[<Разделы объявления локальных процедур и функций>]
Begin |
} Раздел исполнения процедуры |
<Операторы> |
|
end; |
<Список формальных параметров> : : =
<Элемент списка 1>; <Элемент списка 2>; . . .
<Элемент списка> : : =
<Список имён параметров-значений>: <Тип>
или
var <Список имён параметров-переменных>: <Тип>
или
const <Список имён параметров-констант>: <Тип>
<Обращение к процедуре> : : =
<Имя процедуры>[(<Список фактических параметров>)]
Замечание. Фактические параметры должны быть совместимы с формальными по типам.
program Example2;
type
MyInt = integer ;
var
I: MyInt ;
J: integer ;
procedure P2(var M: integer);
begin
. . .
end;
begin
P2(J) ; // Нормально
P2(I) ; // Ошибка
end.
program Example3;
var
I, J, K : integer ;
procedure P3(L : integer ; var M : integer ; const N : integer);
begin
Inc(L) ; // Бесполезно
Inc(M) ; // Полезно
(* Inc(N) ; *) // Ошибка
end;
begin
I := 1; J := 1; K := 1;
P3(I, J, K) ;
wri teln(‘I=’, I) ; // I = 1
wri teln(‘J=’, J) ; // J = 2
end.
Функции
<Объявление функции> : : =
function <Имя функции>[(<Список формальных параметров>)] :
<Тип возвращаемого значения>;
<Разделы объявления локальных типов, констант, переменных>
<Разделы объявления локальных процедур и функций>
Begin |
} Раздел исполнения процедуры |
<Операторы> |
|
end; |
Среди <Операторов> должен быть хотя бы один «Оператор» вида
<Имя функции> := <Выражение> ;
или
result := <Выражение> ;
program Example4;
var