Содержание
- 2. Требования к программам Допускаются следующие среды по языкам программирования: Turbo Pascal (Borland Pascal) QBasic (Turbo Basic)
- 3. Требования к программам Работать с входными и выходными файлами Выдерживать требования к размеру файла Выполнение программы
- 4. Какие задачи можно считать олимпиадными Задачи на полный перебор вариантов решений Задачи с диапазоном данных, превышающим
- 5. Какие типы данных используются Целые LongInt Вещественные Extended Массивы статические и динамические Записи Динамические структуры данных:
- 6. Какие алгоритмы необходимо знать Алгоритмы со строками: сумма больших чисел, выделение слов в строке, определение палиндрома
- 7. Какие алгоритмы необходимо знать Рекурсивные процедуры для вычисления: факториала числа, степени числа, наибольшего общего делителя; определения
- 8. Что еще нужно уметь Знать операторы языка Паскаль Знать необходимые ключи компиляции Уметь работать с командной
- 9. Разбор задач Определение слов в строке Сумма больших чисел Алгоритмы нахождения простых чисел Определение хода коня
- 10. Определение слов в строке Задача: Требуется определить массив слов в заданном тексте. Будем считать, что слово
- 11. Определение слов в строке Type mas=array[1..50] of string[25]; Var S: string; A: mas; C: char; I,
- 12. Определение слов в строке Begin I:=0; S:=’’; While not eoln do begin Read(c); If c in
- 13. Сумма больших чисел Задача: Найти сумму больших чисел А и В, используя строковое представление этих чисел.
- 14. Сумма больших чисел var A,B,C,s:string; p,ost,i,n1,n2,n,k1,k2,cod:integer; Begin Readln(A); Readln(B); n1:=Length(A); n2:=Length(B);
- 15. Сумма больших чисел if n2>=n1 then n:=n2 else n:=n1; for i:=1 to n1-n2 do B:=‘0’+B; for
- 16. Сумма больших чисел p:=k1+k2+ost; if p>9 then begin p:=p mod 10; ost:=1; end else ost:=0; str(p,s);
- 17. Алгоритм нахождения простых чисел Задача: Найти все простые числа до заданного целого N. Решение: Применим алгоритм
- 18. Алгоритм нахождения простых чисел Решето Эратосфена var s: set of byte; i, k, k0, m, N:
- 19. Алгоритм нахождения простых чисел for i:=k+1 to N do { просматриваем все остальные числа } if
- 20. Алгоритм нахождения простых чисел Если N > 255, то множество использовать нельзя. Для проверки каждого числа
- 21. Алгоритм нахождения простых чисел Эффективный алгоритм проверки на простое число var n,i,m: longint; flag: boolean; Begin
- 22. Определение хода коня Задача: Известно местоположение белого и черного коня. Нужно узнать, за какое наименьшее число
- 23. Определение хода коня
- 24. Определение хода коня type mas=array[1..2,1..8]of integer; mat=array[1..10,1..10]of byte; const v:mas=((1,1,-1,-1,-2,-2,2,2), (2,-2,2,-2,1,-1,1,-1)); { на сколько позиций по
- 25. Определение хода коня procedure hod (x, y: byte); var i: byte; begin if a[x, y]=1 then
- 26. Определение хода коня Begin assign(input,‘input.txt'); reset (input); assign(output,'output.txt');rewrite(output); readln(n,m); { размеры шахматного поля } readln(x,y); {
- 27. Определение хода коня for i:=1 to 8 do if ((x+v[1,i]>=1)and(x+v[1,i] ((y+v[2,i]>=1)and(y+v[2,i] inc(h);hod(x+v[1,i],y+v[2,i]); dec(h); end; if (not
- 28. Задача о рюкзаке Задача: Дано N предметов Ki с указанием веса Wi и стоимости каждого предмета
- 29. Задача о рюкзаке Var now, t, w, v:array[1..50] of integer; S, Smax, N, P, i:integer; Procedure
- 30. Задача о рюкзаке Procedure Solve (k, P, S:integer); Var i: integer; Begin If (P If ((k>N)
- 31. Задача о рюкзаке Procedure Sort; Var i:integer; Begin For i:=1 to N-1 do For j:=I to
- 32. Задача о рюкзаке BEGIN {ввод данных} Readln( N, P ); For i:=1 to N do Readln(
- 33. Алгоритм Дейкстры Задача: Известны, что все цены неотрицательны. Найти наименьшую стоимость проезда из 1 города в
- 34. Алгоритм Дейкстры var lincs: array[1..100,1..100]of real; sum: array[1..100]of real; N,m: integer; i,j,k: integer; r: real;
- 35. Алгоритм Дейкстры procedure Go(m:integer); var i:integer; begin for i:=1 to N do if(lincs[i,m] 0) and (sum[i]>sum[m]+lincs[i,m])
- 36. Алгоритм Дейкстры begin assign(input,’input.txt’);reset(input); assign(output,‘output.txt’);rewrite(output); readln(n); readln(m); for i:=1 to N do begin sum[i]:=2147483647; for j:=1
- 37. Алгоритм Дейкстры if (lincs[i,j]>r)or (lincs[i,j]=0) then begin lincs[i,j]:=r; lincs[j,i]:=r; end; end; sum[m]:=0; go(m); writeln(sum[1]); j:=1; while
- 38. Алгоритм Дейкстры k:=0; for i:=1 to N do if (lincs[i,j] 0) and (sum[j] = sum[i]+ lincs[i,j])
- 39. Восстановление дерева графа Задача: дана строка из чисел, полученных последовательным обходом дерева с корня до каждого
- 40. Восстановление дерева графа Input.txt: 3 1 7 3 4 2 3 4 5 3 4 6
- 41. Восстановление дерева графа Var flag:boolean; maxn, temp, top, i, n, j: Integer; a,b:array[1..10000] of integer; Begin
- 42. Восстановление дерева графа If temp=top then begin a[N]:=top; continue; End; b[N]:=temp;{формируем новую пару} If temp>maxn then
- 43. Восстановление дерева графа a[n]:=0; {обнуляем лишний корень} N:=N-1; {корректируем размер массива} {проводим сортировку методом пузырька} For
- 44. Восстановление дерева графа {выводим структуру дерева} j:=1; For i:=1 to maxN do Begin While a[j]=i do
- 45. Волновой алгоритм Задача: Дана схема лабиринта в виде матрицы чисел из 0 и 1. Найти наименьшую
- 46. Волновой алгоритм Начало пути Полученный путь
- 47. Волновой алгоритм Program voln; Uses crt; Const Map:array[1..10, 1..10] of byte=( (0, 0, 1, 0, 0,
- 48. Волновой алгоритм var xs, ys, xe, ye:byte; x, y, i: byte; mapm: array [1..10, 1..10] of
- 49. Волновой алгоритм procedure next (var x,y:byte); begin if (x begin x:=x+1; exit; end; if (x>1) and
- 50. Волновой алгоритм BEGIN {вывод массива лабиринта} for y:=1 to 10 do begin for x:=1 to 10
- 51. Волновой алгоритм {волновой алгоритм поиска минимального пути} mapm [xs, ys]:=1; i:=1; repeat i:=i+1; for x:=1 to
- 52. Волновой алгоритм if (y>1) and (mapm[x,y-1]=0) and (map[x,y-1]=0) then mapm[x,y-1]:=i; if (x if (x>1) and (mapm[x-1,y]=0)
- 53. Волновой алгоритм { формирование массива координат для прохода по лабиринту } moves:=i-1; x:=xe; y:=ye; i:=moves; repeat
- 54. Волновой алгоритм map[xs, ys]:=2; {вывод найденного пути} for i:=1 to moves do writeln(‘x=’, moves[i], ‘,y=’, movesy[i]);
- 55. Построение выпуклого многоугольника Задача: Даны точки на плоскости. Построить по этим точкам выпуклый многоугольник. Решение: Есть
- 56. Построение выпуклого многоугольника 2) (Алгоритм Грэхема) Пусть найден центр тяжести всех координат. Упорядочим точки относительно полярного
- 57. Построение выпуклого многоугольника 3) Алгоритм Джарвиса. Отрезок, определяемый двумя точками, является ребром выпуклой оболочки тогда и
- 58. Построение выпуклого многоугольника 4) Алгоритм «разделяй и властвуй». Исходное множество из N точек разбивается на два
- 59. Построение выпуклого многоугольника Алгоритм Джарвиса Const Maxn=100; Type Real=Extended; Tpoint=Record x,y:Real; End; Var A:Array[1..MaxN] Of TPoint;
- 60. Построение выпуклого многоугольника { Поиск номера самой левой нижней точки, принадлежащей выпуклой оболочке} Function GetLeft:Integer; Var
- 61. Построение выпуклого многоугольника Procedure Solve; Var nx: Integer; ls: TPoint; Begin M:=0; {Количество точек в выпуклой
- 62. Построение выпуклого многоугольника {Поиск следующей точки выпуклой оболочки} Function GetNext(Const pr,gn:Tpoint):Integer; Var i, fn: Integer; mx,
- 63. Построение выпуклого многоугольника Else If (nw=mx) Then nw:= Rast(gn,a[i]); If (rsx End; GetNext:=fn; End;
- 64. Построение выпуклого многоугольника {Функция вычисления угла по трем точкам} Function GetAngl(Const A,B,C:Tpoint):Real; Var aa,bb,cc :Real Begin
- 65. Задачи для самостоятельного решения Поход в музей Упорядоченные числа Бильярд Лягушка-царевна Расписание процессора Привал в лесу
- 66. Задачи для самостоятельного решения Поход в музей. В одном детском саду воспитатели решили сводить детей на
- 67. Задачи для самостоятельного решения Упорядоченные числа. Натуральное число назовем упорядоченным, если его цифры оказываются упорядоченными по
- 68. Задачи для самостоятельного решения Бильярд. Дядя Вася решил поиграть в бильярд. Бильярдное поле задается системой неравенств
- 69. Задачи для самостоятельного решения Лягушка-Царевна. Лягушка (ну, почти царевна) увидела, куда попала стрела, пущенная Иваном-Царевичем. А
- 70. Задачи для самостоятельного решения Для того, чтобы иметь ускорение Amax = 1, лягушке необходимо проглотить одного
- 71. Задачи для самостоятельного решения Расписание процессора. При создании новой операционной системы SOS программисты столкнулись со следующей
- 72. Задачи для самостоятельного решения Разумным казалось просто выполнять задачи последовательно. Однако в этом случае работа системы
- 74. Скачать презентацию