МОУ СОШ №3 г. Осташков Тверская обл.
  
 
 
 
 

Любую сложную программу можно разбить на элементарные фрагменты, при составлении которых можно использовать базовые алгоритмы. Здесь приведены примеры таких алгоритмов на двух наиболее распространенных в школе языках Basic и Pascal.

PASCAL

СТРОКИ

  1. Поиск символа (порядкового номера, последнего)
st: =  ‘информатика’;
for i := 1  to length(st) do
  if st[i] = "ф" then k := i;
 	  WriteLn(k) // Не обязателен, как и в  последующих
  1. Повтор заданной буквы в тексте
st :=  ‘информатика’;
k:=0;
for i := 1  to length(st) do
  if st[i] = "ф" then k := k+1;
  1. Замена символа.
st :=  ‘информатика’;
for i := 1  to length(st) do
  if st[i] = ‘ф’ then st[i] := ‘а’;
  1. Вставка слова s на i-тое место в текст st

Insert(s,st,i);

  1. Поиск слова (порядкового номера первой буквы,  последнего, если оно встречается несколько раз)
st := ‘информатика’; //Примеры слов и текстов и в следующих …
s := ‘форма’;
for i := 1  to length(st) do
  if copy(st, i, length (s)) = s Then k := i;
или короче с применением функции k:=Pos(s,st)
  1. Замена слова.
st := ‘сегодня петя идет гулять’;
s1:=’петя’;
s2:=’коля’;
for i := 1  to length(st) - length(s1)  do
  if copy(st, i, length (s1)) = s1  then
    begin
      Delete(st, i, length (s1));
      Insert(s2,st,i);
    end;
  1. Удаление символа
st :=  'информатика';
s:='и';
while  Pos(s,st)>0 do
  Delete(st,Pos(s,st),1);  
  1.  Удаление слова (аналогично удалению символа)
st =  "информатика"
s = "форма"
while  Pos(s,st)>0 do
  Delete(st,Pos(s,st),length(s));


	        ОДНОМЕРНЫЙ (ЛИНЕЙНЫЙ  МАССИВ)
  1. Вывод массива (индекс, элемент)
for i: = 1  to n do
  WriteLn (i, ‘ - ’,a[i]);
  1. Перестановка элементов на четных и нечетных местах
for i:= 1  to n do
  if i mod 2  =0 then
    begin
      t:=a[i-1];  // t - временная  переменная
      a[i-1]:= a[i];
      a[i]:=t;
    end;
  1. Сумма массива
s: = 0;
for i:= 1  to n do
  s:= s + a[i];
  1. Среднее арифметическое

См. предыдущий
sr=s/n;

  1. Сумма по условию
s := 0;
for i:= 1  to n do
  if a[i] > 0 Then s := s + a[i]; //например,  положительных 
  1. Произведение по условию
p:= 1;
for i:= 1  to n do
  if  a[i] > 0 then p:= p * a[i];
  1. Максимальный (минимальный) элемент
max: = а[1];
for i:= 2  to n do
  if a[i] > max then max = a[i];
  1. Индекс максимального (минимального)
inMax  = 1;
for i:= 2  to n do
  if  a[i] > a[inMax] then inMax = i;
  1. Упорядочение массива по убыванию (возрастанию)
а) выборкой с поиском индекса максимального (минимального)
for j := 1  to n - 1 do
  begin
    inMax := j;
      for i := j + 1 to n  do
        If a[i] > a[inMax] Then inMax := i;
          t := a[inMax];
          a[inMax] := a[j];
          a[j] := t;
  end; 
б) Методом «всплывающего пузырька»
for j :=  1 to n - 1 do
  for i := 1 to n - j do
    If a[i + 1] > a[i] Then
      begin
        t := a[i];
        a[i] := a[i+1];
        a[i+1] := t;
      end;
 	        ДВУМЕРНЫЙ МАССИВ
  1. Поиск максимального (минимального)
max := a[1, 1];
for j := 1 to n do
  for i := 1 to m do
    If  a[j, i] > max then max := a[j, i];
  1. Поиск индексов максимального (минимального)
colMax := 1;//Колонка
rowMax := 1;//Ряд
  for j := 1 to n do
    for i := 1 to m do
      if a[j, i] > a[rowMax, colMax] Then
        begin
          rowMax := j;
          colMax := i;
        end;
  1. Суммы по рядам (по столбцам аналогично)
а) с выводом на экран
for j := 1  to n do
  begin
    s := 0;
    for i := 1 to m  do
      s := s + a[j, i];

  end;
б) с записью в вспомогательный массив
for j := 1  to n do
  begin
    s[j] := 0;
    for i := 1 to m  do
    s[j] := s[j] + a[j, i];
  end;
  1. Главная диагональ if i=j …, число столбцов и строк одинаково m=n.
  2. Замена элементов выше диагонали (например, отрицательных нулями)
for j := 1  to n do
  for i := 1 to m  do
    if (i > j) And (a[j, i] < 0) Then
 	  a[j, i] := 0;

 

  1. Суммирование двух массивов с одинаковым количеством элементов (умножение аналогично)
for j := 1  to n do
  for i := 1 to m  do
    s[j,i]:=a[j, i] +b[j, i] 
 	        Результат заносится в массив s.
  1. Обмен местами элементов двух массивов с одинаковым количеством элементов
for j := 1  to n do
  for i := 1 to m  do
    begin
      t:= a(j,i);
      a(j, i):=b(j,i); 
      b(j,i):=t;
    end;
  1. Вывод на экран (первый столбик – индексы)
For i:=1 to  n do
  begin
    Write(i:4);
    For j:=1 to m do
      Write(a[i,j]:4);
    WriteLn;
end;

Заполнение массивов.

с клавиатуры:

for i:= 1 to n do
  read(a[i]);
    • с помощью генератора случайных чисел

randomize;
for i:= 1 to n do a[i]:=random(m+1)+n; //m - интервал, n - минимальное значение.

    • из файла (n чисел в файле записаны в «столбик»):
assign(f,'file_name’);
reset(f);
for i:= 1 to n do
  ReadLn(f,a[i]);
close(f);

PasсalABC - cистема Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на школьников и студентов младших курсов

 

Учебные пособия

Информатика и ИКТ. Базовый ур. Практикум. 10-11кл_Семакин И.Г. и др_2011 -120с

Информатика и ИКТ. Задачн-практ. Т.1_п.р. Семакина, Хеннера_2011 -309с

Информатика и ИКТ. Задачн-практ. Т.2_п.р. Семакина, Хеннера_2011 -294с

 

Видео уроки. Turbo Paskal

Интегрированная среда Турбо Паскаля. Работа в среде Турбо Паскаля

Введение в Турбо Паскаль. Алфавит языка

Введение в Турбо Паскаль. Элементарные конструкции

Введение в Турбо Паскаль. Типы данных

Введение в Турбо Паскаль. Описание массивов

Введение в Турбо Паскаль. Оператор- присваивания, перехода, простой, составной

Введение в Турбо Паскаль. Условный оператор и оператор выбора

Введение в Турбо Паскаль. Оператор цикла типа арифметической прогрессии

Введение в Турбо Паскаль. Оператор цикла While

Введение в Турбо Паскаль. Оператор цикла Repeat

Введение в Турбо Паскаль. Break и Continue

Структурированные типы данных. Работа с множествами

Структурированные типы данных. Задачи на использование множеств

Использование подпрограмм в Турбо Паскале. Структура программы

Использование подпрограмм в Турбо Паскале. Описание и вызов процедур и функций

Стандартные процедуры и функции. Математические функции

Стандартные процедуры и функции. Функции округления и преобразования типов

Стандартные процедуры и функции. Функции и процедуры порядкового типа

Стандартные процедуры и функции. Процедуры ввода данных

Стандартные процедуры и функции. Процедуры вывода данных

Стандартные процедуры и функции. Особенности вывода вещественных значений

Стандартные процедуры и функции. Процедура вывода данных Writeln

Стандартные процедуры и функции. Вспомогательные процедуры и функции

Решение задач (Обработка чисел). Работа с числами.

Решение задач (Обработка одномерных массивов). Работа с двумя массивами

Решение задач (Обработка одномерных массивов). Составление массива из другого.

Решение задач (Обработка двумерных массивов). Работа с двумерными массивами.

Решение задач (Обработка двумерных массивов). Нахождение минимума.

Решение задач (Обработка двумерных массивов). Работа с элементами по условию.

Решение задач (Обработка строк).

 


 
             
Hosted by uCoz