
- •Типы ,определяемые пользователем: Записи (определение, описание, массивы. Записей, инициализация Записи, обращение к полям Записи, примеры).
- •Указатели. Операции над указателями. Косвенная адресация.
- •Форматный ввод/вывод . ( примеры).
- •Прямой доступ к элементам файла.
- •Логические операции
- •Раздел var. Определение. Типы данных. Размерность.
Арифметические и логические операции .
Арифметические операции
+ = +
Х+=3 х1=х1+3
- = -
Х-=3 х=х-3
*= *
/= /
%= %
Х*=2 х=х*2
Х/=2 х=х/2 - деление
Х%=2 х=х%2 – возвращается остаток
++
Инкремент (увелечение на 1 –(increment) ++ii++ - постфиксным
- -
Декремент (decrement) уменьшение на --ii--
=
Присваивание
Логические операции
&&
Логическое “и”
Пример :if((a<0)&&(c<0)) printf(in”значение переменных а и в отрицательные”);
||
Логическое “или”
Основные функции обработки строковых переменных (сравнения, пересылки, склеивания, поиска символа, поиска подстроки).стр.7
CTRCOMP ИЛИ STRICOMP
STRCOPY
STRCAT
STRSCAN
STRPOS
8
Инструкция CASE и его применение для создания меню
#include <math.h>
#include <system.hpp>
#include <iostream.h>
#include <conio.h>
int main ()
{int c; clrscr();
for(;;);
{
cout<<"clrscr(system("cncp 1251"); cin>>a)...MENU...\u\u";
cout<<"(1) Ввод данных \n">>;
cout<<"(2) сортировка \n">>;
cout<<"(3) Вывод данных \n">>;
cout<<"(4) конец работы \n">>;
cin>>c;
FILE->NEW->OTHER->CONSOLEWITH->
switch(c)
{ case 1:cout<<" Выбран пункт 1\n">>; cout<<pow(a;4); break;
case 2:cout<<" Выбран пункт 2\n">>; break;
case 3:cout<<" Выбран пункт 3\n">>; break;
case 4:cout<<" Конец работы 4\n">>; getch();
return(0);
default:cout<<" Введен неверный номер пункта, введите снова ";
}; getch();
}
return(0);
}
C/c++ Switch (переключающее выражение) {case 1:{составной операторов;break} Case 2:{ составной операторов;break} Default:операторы ;break;\\иначе }; Пример: #include<iostream.h> #include<conio.h> Intmain() { intc; Clsrscr() For(;;) \\бесконечный цикл Cout<<”…MENU...\n\n”; Cout<<”(1) Ввод данных \n”; Cout<<”(2)сортировка \n”; Cout<<”(3) Вывод данных \n”; Cout<<”(4) конец работы \n”; Cin>>c; Switch( c ) { case 1 : cout<<”Выбранпункт 1\n”;break; case 2 : cout<<”Выбранпункт 2\n”;break; case 3 : cout<<”Выбранпункт 3\n”;break; case 4 : cout<<”Конецработы\n”;getch; return(0); default: cout<<”Введен неверный номер пункта, введите снова”; }; }getch(); Return(0); } |
Case of _ 1:--- 2:--- End. |
Строка, как массив символов: определение, инициализация: символьных , строковых и многострочных переменных.
Строка- это последовательность символов, при этом каждый символ занимает один байт. Количество символов в строке называется длиной строки. Длина строки на Паскале занимает от 0 до 250 байт. Строковые величины могут быть как константами, так и переменными. Строковые переменные можно определить как массив типа Char и работать с ними точно также как и с одномерными массивами. Строковую переменную определяют как тип Str
srt: array[1..50] of char;
a) name: string[50];
b) name:string; {255 байт}
В квадратных скобках указывается кол-во символов в строке, если кол-во символов не указано, то строка занимает 250 байт
Символы внутри строки как в одномерном массиве индексируются.
name[5];
name[k+1];
Операция отношения.: =, <>, <=, >=.
Функции работы со строками и символами
i:=copy(s,2.3);
s:=ABCDEFG;
результат
'BCD'
функция конкатенация- ввод нескольких строк.
>i=concat('AA','XX','y');
результат
AAXXy
Обнаруживает первое появление подстроки s1 получается число, функция возвращает число которое где находится первый символ подстроки.
9
Определение принадлежности символов данному множеству (с примерами).
uses crt; type mset=set of 'a'..'z'; Var s1,s2,s3:String; ms1,ms2,ms3:mset; c:char; i:byte; procedure sm(s:string; var ms:mset); var i:byte; begin for i:=1 to length(s) do ms:=ms+[s[i]]; end; begin clrscr; s1:='Nikto ne vechen v mire,vse ujdet'; s2:='no vechno imz dobroe zhivet'; sm(s1,ms2); sm(s2,ms2); ms3:=ms1*ms2; s3:=' '; for c:='a' to 'z' do if c in ms3 then s3:=s3+c; writeln('rezultat= ',s3); readkey; end. |
Program Lotto; var nb, k: Set of 1..36; kol, l, i, n: Integer; begin Randomize; WriteLn('ВВЕДИ kol'); ReadLn(kol); nb:=[1..36]; for i:=1 to kol do begin k:=[]; for l:=1 to 5 do begin repeat n:=Random(36) until (n in nb) and not (n in k); k:=k+[n]; Write(n:4) end; WriteLn end end. Спорт лото |
Определение файловой переменной. Связь файловой переменной с файлом. Открытие файла. Закрытие файла.
Операция работы с файлом:
1. Чтение RESET(F)
2. Запись REWRITE(F)
3. Дозаписать файл APPEND(F)
4. Удаление из файла DELETE(STR,2,SPOS) УДАЛЕНИЕ СЛОВА
5. Корректировка информации в файле OB.< >:=
6. Файловая сортировка.
7. закрытие файла CLOSE
Связь файловой переменной с файлом при закрытии сохраняется , поэтому при повторном открытии этого файла – процедуру ASSIGN можно не применять, но RESET – необходимо!!!
10
Глобальные , локальные , статические и внешние переменные с точки зрения области видимости.
Переменная, объявленная в процедуре или функции программиста, называется локальной. Локальные переменные доступны только операторам той подпрограммы или функции, в которой они объявлены.
Переменные, объявленные в основной программе доступны всем операторам/ инструкциям, в том числе и операторам процедуры и функции, такие называются глобальными.
Память под глобальные переменные выделяется в сегменте данных. Выделяется в стеке.
Областью видимости идентификатора (переменной) называется область программы, в которой на данный идентификатор можно сослаться. Существуют четыре области видимости идентификатора: область видимости — функция, область видимости — файл, область видимости — блок, и область видимости — прототип функции. Переменная, объявленная вне любой функции (на внешнем уровне), имеет область видимости файл. Такая переменная «известна» всем функциям от точки её объявления до конца файла. Переменные, объявления функций и прототипы функций, находящиеся вне функции — все имеют областью видимости файл.
Сортировка методом вставки (с тестом).
Основная идея в том что очередной элемент вставляется таким образом, чтоб позиция его стояла после позиции меньшего элемента.
procedure Inser(var item: DataArray; count:integer); var i, l: integer; x: DataItem; begin for i := 2 to count do begin x := item[i]; j := i-1; while (x<item[j]) and (j>0) do begin item[j+1] := item[j]; j := j-1; end; item[j+1] := x; end; end; { конец сортировки вставкой }
11
Типы файлов (с примерами).
Виды передачи параметров в функцию.
12
Общий вид программы на Паскале ( с характеристикой разделов)
Функции (общая характеристика, определение, объявление, вызов, примеры).
13
Перечисляемые типы (с примерами).
Динамические двумерные массивы (выделение памяти, заполнение, передача двумерных массивов в функцию).
14
Формальные и фактические параметры. Виды передачи параметров в функцию.
Общий вид программы на С/С++.
15
Сортировка методом выбора.
Рекурсии. Фреймы.
16
Инструкции переходов в Паскале.
Прямой файловый доступ.
17
Тип строковых переменных string (определения, функции для обработки переменных типа string, примеры).
Назначение функции tell(). (с примерами).
18
Динамические структуры данных. Стеки и очереди (создание, заполнение, извлечение, пример).
Потоки в С++. Манипуляторы.
19
Статические одномерные массивы (определение, инициализация, заполнение массива, виды передачи массива в функцию, алгоритмы удаления и добавления, примеры).
Обработка файлов ( алгоритмы работы с файлом; алгоритмы удаления и добавления).
20
Обработка одномерных динамических массивов (выделение динамической памяти, инициализация, заполнение массива, виды передачи массива в функцию, алгоритмы удаления и добавления, примеры).
Определение констант в Паскале и в С/С++.
21
Инструкции циклических процессов на Паскале.
Инструкции переходов в С/С++.
22