- •Вопрос 1 : Понятие информации и информатики. Количественная мера информации.
- •Вопрос 2: Оператор выбора в Паскале.
- •Вопрос 3: Виды адресации: прямая, косвенная, непосредственная.
- •Вопрос 4: модули в Паскале. Определения, назначения и использование.
- •I) Модули, формируемые пользователем.
- •II. Interface
- •IV. Раздел инициализации.
- •II) Стандартные модули.
- •Вопрос 5: Определение алгоритма. Свойства алгоритма.
- •Вопрос 6: Массивы. Одномерные массивы.
- •Вопрос 7: Простые и сложные высказывания. Логические операции над высказываниями.
- •Вопрос 8: Условный оператор.
- •Вопрос 10: Рекурсия в Паскале.
- •Вопрос 12: Основные типы алгоритмов и их графическое изображение.
- •Вопрос 14: Глобальные вычислительные сети. Назначение, структура, технические средства.
- •Вопрос 15: Тип данных.
- •Вопрос 17: Общая структура программы языка Паскаль.
- •Пример: ввести 2 числа, вывести большее.
- •Вопрос 22: Простые и сложные высказывания. Логические операции над высказываниями.
- •Вопрос 28: Двоичная система исчисления. Правила арифметических вычислений в ней.
- •Вопрос 29: Множества в Паскале. Значение типа множество.
- •Вопрос 31: Динамические переменные в Паскале. Динамические переменные и указатели.
- •Вопрос 34. Шинная организация эвм.
- •Обмен с прямым доступом в память.
- •Вопрос 35: Порядковые типы данных. Перечисляемый тип данных.
- •Вопрос 36. Функции и структура операционной системы.
- •Вопрос 38: Рекурсия в Паскале.
- •Вопрос 39: Представление чисел с плавающей точкой и операции с ними.
- •Вопрос 41: Равносильности логики высказываний и преобразование логических выражений.
Вопрос 5: Определение алгоритма. Свойства алгоритма.
Алгоритм- фундоментальное понятие информатики. Он определяет способы или правила преобразования информации. Алгоритм- предписание, однозначно заданный процесс преобразования информации виде последовательности элементарных дискретных шагов, приводящих за конечное число их применения к результату.
Алгоритм- четкая посл-ть действий при котор в любой момент времени известно, что делать дальше. И котор гарантирует что за конечное время будет получен необходимый результат или будет установлено, что результата не существует.
Свойства алгоритма:
1) Дискретность:
Алгоритм состоит из дискретных шагов, выполнених которых переводит исходные данные в результат.
2) Определенность.
Каждый шаг алгоритма четко определен и всегда известно. Что делать дальше.
3) Конечность.
Необходимый результат должен быть получен за некоторое конечное число шагов.
4) Массовость.
Любой алгоритм разрабатывается для решения целого класса однотипных задач, отличающихся лишь исходными данными.
Вопрос 6: Массивы. Одномерные массивы.
Массив – это тип данных объединяющий фиксированное число элементов одного типа, называемого базовым типом. Каждый элемент массива имеет свой индекс, который используется для доступа к этому элементу. По этому можно выделить любой элемент массива и обращаться с ним как с переменной базового типа. Описывают массивы следующим образом:
Имя переменной массива : array[мин. Знач. Индекса...макс. Знач. Индекса]ofбаз. Тип;
Отдельные элементы массив записываются в виде:
Имя переменной массива [индекс], где индекс это константа, переменная или выражение целого типа, значение которого лежит в диапазоне от минимального значения индекса до максимального значения индекса. Одномерный массив – это массив, базовым типом которого является скалярный тип. Количество элементов одномерного массива (вектора), называется длинной или размером массива. Массиву можно присвоить значения другого массива, этого же типа. Это единственная допустимая операция над массивом, как единым целым. Арифметические действия, ввод и вывод выполняются над отдельными элементами массива.
Пример: Найти max элемент в массиве.
Const n=100;
Var a:array [1..n] of integer;
Max,x,I,imax:integer;
Begin
For i:=1 to n do a[i]:=random(n);
Max:=a[1]; imax:=1;
For i:=1 to n do
If a[i]>max then begin
Max:=a[i]; imax:I;
End;
Writeln(max,imax);
End.
Сортировка массивов и поиск элементов массивов.
Сортировка – это перестановка элементов массива в порядке их возрастания или убывания. Разработано множество алгоритмов сортировки, один из простейших – сортировка выбора.
Сортировка выбора элементов массива в порядке их возрастания выполняется следующим образом.
1. Установить номер наименьшего элемента массива.
2. Поменять местами первый и наименьший элемент массива.
3. Выполнить пункты 1 и 2 над оставшимися элементами массива.
4. Повторять пока остаток массива не сократится до одного элемента.
На каждом шаге алгоритма наименьший элемент из области поиска перемещается в уже отсортированную часть массива. За счет этого упорядоченная часть массива растет, а не упорядоченная сокращается на один элемент. Следовательно, для сортировки массива из nэлементов требуетсяn-1 шаг.
Const n=100
Var a:array [1..n] of integer;
Tmp,min,I,j,jmin:integer;
Begin
For i:= 1 to n do a[i]:=random(n)-50;
For i:= 1 to n-1 do
Min:=a[i]; jmin:=I;
For j:=I to n do
If a[j]<min then begin
Min:=a[j]; jmin:=j;
End;
Tmp:= a[jmin]; a [jmin]:= a[i]; a[i]= tmp;
End;
For i:= 1 to n do write(a[i],’’);
End.
Время выполнения одного шага прямо пропорционально размеру неупорядоченной части массива. Размер неупорядоченной части равен nв начале работыb2 в конце. Общее время сортировки выборомT=k*n+k(n-1)+…+k*3+k*2. Гдеk– некоторый коэффициент пропорциональности не зависящий отnи характеризующийся скоростью конкретной ЭВМ.
T=k*(n+2)*(n-1)/2≈c*n2, гдеc– константа не зависящая отn. Полученная показывает как меняется продолжительность сортировки с изменением размера массива. Т.е. о временной сложности сортировки выбором говорят, что она квадратична, т.е. время сортировки пропорционально квадрату числа сортирующихся элементов.
Еще одним алгоритмом сортировки является обменная или пузырьковая сортировка. На каждом шаге массив проходят от начала к концу, сравнивая пары соседних элементов. Если очередная пара нарушает требуемый прядок ее элементы меняют местами. Шаги повторяют до тех пор, пока очередной проход не вызовет ни одного обмена.
В отличие от сортировки выбором количество шагов обменной сортировки зависит от первоначального значения массива. По этому оценим временную сложность алгоритма в худшем случае (массив отсортирован в обратном порядке), в лучшем случае (массив отсортирован), временная сложность алгоритма равна сложности одного шага. При обратном порядке чисел потребуется n-1 шаг, по крайней мере, один элемент будет выставлен на свое место. СледовательноT=(n-1)*t(n), гдеt(n) – временная сложность одного шага, зависящая отn,t(n)=k*n, следовательноT≈k*n2, т.е. сложность обменной сортировки также квадратична.
Const n=100
Var a:array [1..n] of integer;
Tmp,min,I,j,jmin:integer;
Flag:boolean;
Begin
For i:= 1 to n do a[i]:=random(n)-50;
Flag:= true; I:=1;
While(i<n) and flag do begin
Flag:=false;
For j:=1 to n-1 do
If a[j] >a[j-1] then begin
Tmp:= a[j]; a[j]:=a[j+1]; a[j+1]:=tmp;
Flag:=true;
End;
I:=i+1;
End;
For I:=1 to n do
Write(a[i],’’);
End.
Кроме сортировки часто возникает задача поиска заданного элемента в массиве, при этом необходимо определить имеется ли такой элемент в массиве и если есть то какой его индекс.
Пример: Определить в массиве наличие заданного числа и вывести его индекс.
Const n=100;
Var a:array[1..n] of integer;
B,i:integer;
Flag:Boolean;
Begin read(b);
For i:=1 to n do a[i]:=random(n)-50;
Flag:=false; i:=0;
While(i<n) and not(flag) do begin
I:=i+1;
If a[i]=b then flag:=true;
End;
If flag then writeln(i) else writeln(‘net’);
End.
Многомерные массивы.
Если элементы массива сами являются массивами, получается структура называемая двумерным массивом (матрицей). Описывается матрица также, как и вектор, но в квадратных скобках указывается два диапазона изменения индекса, через запятую. Обращаются к элементам двумерного массива, указывая два индекса. Если указывать один, это будет понятно, как имя одномерного массива, входящего в матрицу. Считается, что первый индекс, обозначает номер строки, второй – номер столбца.
Подобным образом описываются трех, четырех, и т.д. массивы.