среда, 12 марта 2014 г.

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

Написать программу для задачи (по вариантам), используя метод "сверху вниз"

План работы

I. В тетради:

  1. Записать условие своей задачи в тетрадь для контрольных работ.
  2. Перечислить необходимые переменные - имена, типы, назначение. Например: s - string, исходная строка
  1. Написать тестовые входные строки (не менее 3-х)
  2. Написать алгоритм программы верхнего уровня

II. На компьютере в среде PascalABC:

  1. Написать программу верхнего уровня. Имя программы - t21-<N задачи>-1.
  2. В комментария этой программы написать: Фамилии авторов, текст задачи.
  3. Программу отладить. Сохранить в своей папке Progr  на  локальном компьютере



III Следующий уровень детализации

В тетради

  1. Написать цель обработки строки. Например - просмотреть каждый символ строки, отыскивая пробел или точку. Если встречается пробел, то добавляется 1 в счетчик слов.
  2. Написать алгоритм обработки строк



На компьютере в среде PascalABC:

  1. Сделать копию программы t21-<N задачи>.-1 и сохранить ее с именем t21-<N задачи>-2
  2. В эту программу вставить операторы обработки строки
  3. Программу отладить. Сохранить в своей папке Progr  на  локальном компьютере



Отчет о работе представлен в тетради для контрольных работ и в своей копии документа Практическая работа на облачном диске.


среда, 5 марта 2014 г.

Урок 20. Обработка строк с помощью функций и процедур

Задача

Из слова КЛОУН путем вырезок и вставки получить слова УКЛОН, КУЛОН, КОЛУН. Полученные слова вывести на экран.

Постановка задачи

Рассматриваем данное слово как последовательность пронумерованных от 1 до N символов.
Исходная строка находится в переменной s (строка)
Перемещаемая подстрока находится в переменной w(строка)
Номер позиции (индекс) перемещаемой подстроки w в исходной строке s находится в переменной k(целое)
Номер позиции (индекс) вставляемой подстроки w в строку s находится в переменной t (целое)

Алгоритм обработки данной строки

Начало
Сохранить подстроку, которую надо переставить, в переменной w. Найти в данной строке s подстроку w и сохранить 1-ю позицию (индекс) найденной подстроки в переменной k. 
Вырезать из данной строки s подстроку w.
Вставить подстроку w в данную строку s с позиции t.
Вывести на экран полученную строку s.
 Конец

Какие подпрограммы можно применить:

Можно ли узнать длину данной строки - значение N? N:= Length(s), где s = ‘КЛОУН’
По условию задачи нужно вырезать нужный символ и вставить его в другое место.
Вырезание подстроки выполняется с помощью 2-х подпрограмм:

Copy(s,index,count) и Delete(s,index,count). Параметры этих подпрограмм:
  • s - входная строка
  • index - позиция, с которой начинаем копировать
  • count - длина копируемой подстроки
Подпрограмма Copy - функция, которая возвращает скопированную подстроку. Тип результата - string.  
Подпрограмма Delete - процедура, которая удаляет указанное количество символов, начиная с указанной позиции.
Вставка подстроки выполняется с помощью подпрограммы Insert(subs,s,index), где
  • subs - вставляемая подстрока
  • index - позиция, с которой вставляем подстроку 
  • s - строка, в которую вставляется подстрока

Подпрограмма Insert - процедура, которая вставляет указанную подстроку в данную.
Поиск нужной подстроки осуществляется подпрограммой Pos(subs,s), где
  • subs - подстрока, которую ищем 
  • s - строка, в которой ищем подстроку

Подпрограмма Pos - функция, которая возвращает позицию первой подстроки subs в строке s (или 0 если подстрока не найдена). Тип результата - integer.
Практическая работа и домашнее задание

среда, 19 февраля 2014 г.

Урок 19. Решение задач с использованием данных типа string

Задача формирования строки

Написать программу, приветствующую пользователя:
Диалог:
Назовите имя 
Приветствую, имя. 
Программа должна сформировать выходную строку из константы ‘Привет’ и переменной, в которую вводится имя.
Описать необходимые данные.
Написать алгоритм ввода имени, формирования выходной строки и вывода выходной строки.

Решение задач методом “сверху-вниз”

Метод заключается в поэтапном проектировании алгоритма с использованием заглушек для  алгоритмов более низкого уровня.
Заглушка - оператор или подпрограмма, которая не выполняет нужных действий, а сообщает о том, что эта часть алгоритма выполнена.

среда, 12 февраля 2014 г.

Урок 18. Структура - строка

Основная работа современных компьютеров - обработка текстовой (символьной) информации.
Символьная строка - последовательность символов, расположенная в памяти рядом.
Строка похожа на массив символов. Но языке Pascal для строк существует специальные типы данных - string. Массив символов неудобен потому, что для ввода такого массива символы нужно нужно вводить по одному. Кроме того размер массива задается при описании, а как быть со строками переменной длины?

Тип данных строка позволяет:

  • работать со строкой как с единым объектом
  • использовать строки переменной длины
Строка — упорядоченная последовательность символов. Каждый символ строки занимает 1 байт (код ASCII). Количество символов в строке называется ее длиной. Длина строки — от 0 до 255 символов. В нулевом байте содержится длина строки.

среда, 29 января 2014 г.

Урок 16. Подпрограммы-функции

Повторить материал о подпрограммах

В чем различие между процедурой и функцией?
Функция - вспомогательный алгоритм,  который может принимать параметры, но в отличие от процедуры,  функция всегда возвращает значение - результат.
Примеры встроенных функций: sin, cos, abs, whereX, whereY...
 Результатом выполнения функции может быть число, символ, символьная строка или данные другого типа.

Алгоритм функции, которая вычисляет сумму цифр числа

На формальном языке:
сумма:=0
начало цикла пока n<> 0
      сумма:=сумма + mod (n,10)
      n:= div (n,10)
конец цикла
На языке Pascal:
program funcSum;
var N: integer;
function sumDigits(n: integer):integer;
var sum: integer;
begin
  sum:= 0;
  while n <> 0 do begin
    sum:= sum + n mod 10;
    n:= n div 10;
  end;
sumDigits:= sum;
end;
begin
  write ( 'Введите целое число: ' );
  read ( N );
  write ( 'Сумма цифр ', sumDigits(N))  

end.

Примеры вызова функции

x:= 2*sumDigits(n+5);
z:= sumDigits(k)+ sumDigits(m);

Практическое задание и Домашнее задание

среда, 15 января 2014 г.

Урок 15. Подготовка к ДКР

Итоги выполнения предыдущего задания

Смотрите комментарии в своих рабочих листах. 
Советую работать самостоятельно и задавать вопросы учителю, а не полагаться на мнение соседа :(. 

Подготовка к ДКР

Диагностическая контрольная работа состоится 23 января на уроке по расписанию.
Для повторения материала за базовый курс Информатики поработаем с тестами.
Тесты (4 варианта) расположены на школьном сервере по адресу:
\\server.sc640\public1\learn\11i\ЕГЭ-ДКР\тесты-22-12
За правильный ответ по каждому заданию начисляется 1 балл.
Задания 12, 13, 17, 18 рекомендуем отложить на конец.
Номер варианта указывает учитель.

пятница, 3 января 2014 г.

Урок 14. Подпрограммы. Изменяемые параметры

 Прочитайте документ  - Область действия переменных в программе
Что делает процедура Swap:
Program Exchange1;
var x,y : integer;
procedure Swap (a, b: integer);
var c: integer;
beginc:=a; a:=b; b:=c;end;
begin
x:=2; y:=3; Swap (x, y);  Write(x, ' ', y);
end.
Что должна вывести эта программа?
Выполним эту программу в среде PascalABC. Значения переменных x и y остались прежними! 
Процедура Swap работает с копиями переданных ей параметров. Это значит, что процедура создает в памяти временные локальные переменные с именами  a и b и копирует в них переданные основной программой значения переменных   x и y.  Поэтому все перестановки в процедуре были сделаны с копиями, а значения переменных  x и y в основной программе не изменились. Такая передача параметров называется передачей по значению, а параметры называют параметрами - значениями.
Чтобы  решить эту проблему,  нужно явно сказать, чтобы процедура работала с теми же ячейками памяти, что и основная программа. Для этого при перечислении формальных параметров в процедуре указывают слово var: 
Program Exchange2;
var x,y : integer;
procedure Swap (var a, b: integer);
var c: integer;
begin
c:=a; a:=b; b:=c;
end;
begin
x:=2; y:=3; Swap (x, y);  Write(x, ' ', y);
end.
Выполним эту программу в среде PascalABC. Значения переменных x и y поменялись местами! 
Такая передача параметров называется передачей по ссылке, а параметры называют параметрами - переменными/
Практическое задание и Домашнее задание