- •Этапы решения задач с исполь эвм.
- •Понятие алг-ма. Подходы к опред алг-ма. Св-ва алг-ма Способы записи алг-ма.
- •3. Понятие алг-ма. Понятие исполнителя. Системы команд исполнителя.
- •4. Понятие величины. Типы. Присваивание величин. Совместимость.
- •5. Понятие о структурном прог-ии. Др парадигмы прог-ия: сравн-ая хар-ка.
- •6. Языки прог-ия. Алгор-ие языки (алфавит, синтакис, семантика). Способы описания синтаксиса.
- •7. Общая хар-ка Pascal. Система прог-ия Turbo-Pascal.
- •8. Паскаль-программа: структура, эл-ты языка (алфавит). Данные, обраб-ые Паскаль-программой. Понятие типа данных.
- •9. Операции (ариф-ие и лог-ие) на типах. Струк-ые ф-ци. Выражения.
- •10. Процедура ввода и вывода, управ-ие вводом-выводом. Оператор присваивания. Совмес-ть по присваиванию.
- •11. Уловный оператор. Оператор множ-ного ветвления(выбора).
- •12. Цикл с предусловием., с постусловием. Связь с другими циклами.
- •13. Циклы с параметром. Связь с другими циклами.
- •14. Структ-ый тип данных. Линейные массивы. Примеры.
- •15. Структурированный тип данных. Двумерные массивы. Примеры.
- •16.Сортировка массивов. Метод выбора. Двоичный поиск в массиве.
- •17.Сортировка массивов. Метод обменов.
- •18.Сортировка массивов. Метод вставок.
- •19.Подпрограммы в Паскале. Основные способы передачи параметров в подпрограмму, их сравнение.
- •20.Подпрограммы в Паскале. Область видимости. Локальные и глобальные идентификаторы.
- •23. Скалярные типы данных в Pascal. Перечислимый и ограниченный типы.
- •24.Структурированные типы данных Строковый тип данных: основные процедуры и ф-ции
24.Структурированные типы данных Строковый тип данных: основные процедуры и ф-ции
(составные): массивы, строки, мн-ва, записи, файлы. Строк.тип данных. Строка - посл-ть символов. Каждый символ занимает 1байт памяти. Длина-кол-во симв. в строке. Ее диапазон 0-255.Строковые величины:1)строк. константа - посл-ть симв-ов, заключ-ся в апострофы, 2)строк. переменная - опис-ся в разделе описаний (т.о.: var <идентиф-ор>:string[<макс-ая длина строки>]) Параметр длины м-т не указ-ся в описании. В таком случае подразум-ся, что он = 255.Строк-ая перем-ая занимает в памяти на 1б.больше, чем уаз-ая в описании длина.Т.к. нулевой байт сод-т знач-е текущей длины строки.Если строковой переменной не присвоено никакого значения, то ее текущ стока =0.По мере заполнения строки символами ее текущая длина возрастает, но она не должна превышать макс-го по опис-ю велич. Символы в строке номеруются от 1.Кажд-й отдельный символ идент-ся именем строки с индексом (b[ ]).Индекс м/б положит-ой константой, переменной,выраж-ем целого типа. Знач-е индекса не должно выходить за границы описания. Тип string и стандартный тип char совместимы. Строки и символы м-т употребляться в одних и тех же выраж-ях. Строковые выраж-я строятся из строковых констант, переменных, ф-ций и знаковопераций. Над строк-ми данными допустимы операции сцепления(+) и отношения. Ф-ции: length(s) – вычисляет кол-во символов в строке, copy(S1,P,N) – выделяет из строки подстроку S1 длиной N, начиная с позиции P, concat(S1,S2,…Sn) – сцепляет все строки в одну, poz(S1,S2) – обнаруживает появление в строке S2 подстроки S1.Процедуры: delete(S,P,N) – удаляет из строки S N-символов, insert(S,P,N) – вставляет , str(N,S) – преобразует число к строковому типу, val(S,N,code) – преобразует строковый тип к числовому.
25-26.Длинная арифметика.
Длин-е числа м-о хранить в строке, в массиве, в файле (недостаток: медленное время доступа),с помощью динамических структур данных (списки). Для простоты рассуждений реализуем только неотрицательные целые числа. Вводим дл.число с помощью строки и преобразуем его. Младшие размеры дл.числа – это эл-ты массива с меньшими номерами. {Dlch=array[1..Nmax] of digit;}
Сложение:
Procedure sum (a,b:dlch;var c:dlch);
var i, p, k, ma: int.;
Begin
p:=; obnul(c);
if dlina(a)> dlina(b) then ma:= dlina(a)
else ma:=dlina(b);
for i:=1 to ma+1 do
begin
k:=a[i]+b[i]+p;
if k>9 then
begin
k:=k-10;
p:=1;
end
else p:=0;
c[i]:=k;
end;
end;
Вычитание:
Procedure subtr (a,b:dlch; var c:dlch);
var i, p, k:int.;
Begin
p:=0;
obnul(c);
for i:=1 to dlina(a) do
begin
k:=a[i]-b[i]-p;
if k<0 then begin
k:=k+10;
p:=1;
end
else p:=0;
c[i]:=k;
end;
end;
Умножения:
Procedure umn (var a,b,c:dlch);
var per:0..9; i, j:word; p:0..99;
Begin
obnul (c);
m:=strazryad(b);
for i:=0 to n do
begin
per:=0;
for j:=0 to m do
begin
p:=a[j]*b[i]+per+[i+j];
c[i+j]:=p mod 10;
per:=p div 10;
end;
c[i+m+1]:=per;
end;
end;
Отношения:
Function bolshe (var a,b:dlch):boolean;
var i:word;
Begin
i:=Nmax-1;
while (a[i]=b[i]) and (i>0) do i:=i-1;
bolshe:=a[i]>b[i];
end; {true если a>b, false если a<=b}
{Procedure obnul (var a:dlch);
var i:0..Nmax-1 ;
Begin
for i:=0 to Nmax-1 do a[i]:=0;
end;
Function strazryad(dlina) (var a:dlch):word;
var i:word;
Begin
i:=Nmax-1 while (a[i]=0) and (i>0) do i:=i-1; strazryad:=i;
end;}