Показаны сообщения с ярлыком pascal. программирование. Показать все сообщения
Показаны сообщения с ярлыком pascal. программирование. Показать все сообщения

вторник, 15 апреля 2014 г.

Урок 24. Работа с матрицей

Развитие программы "Игра в крестики-нолики"

На предыдущем уроке получилась программа заполнения и вывода на кран пустого игрового  поля  family_game1.pas. Игровое поле выглядит примерно так:
 -1 -1 -1
 -1 -1 -1
 -1 -1 -1

В эту программу надо добавить фрагмент, благодаря которому программа будет предлагать поочередно каждому игроку сделать свой ход. Программа будет вводить данные игрока в такой формате:
  1. номер строки
  2. номер столбца
  3. 0 или 1 ( в зависимости от номера игрока)
Программа изменяет значение указанной ячейки поля и выводит новое сосотояние поля после каждого хода. После ходов игроков поле будет выглядеть примерно так:
 1 -1  0
-1 -1 -1
-1 -1 -1

Разделение окон ввода и вывода

В среде Pascal можно подключить библиотеку (модуль) подпрограмм для работы с текстом - CRT. Для этого в начале программ добавляется раздел описания модулей:
uses CRT
Тогда при выполнении создается окно вывода отдельно от окна ввода. Процедура   writeln выводит текст в это окно. С помощью подпрограмм модуля CRT можно форматировать выводимый текст.

Процедура вывода игрового поля

В нашей игре придется много раз выводить на экран игровое поле. Имеет смысл оформить операторы вывода поля на экран в виде процедуры  PrintPole.
Процедура описывается в начале программы следующим образом:
procedure PrintPole (x,y:integer);  {х - количество строк, у - количество столбцов }
begin
тело процедуры;
end;
Для вызова процедуры в нужных местах программы используется оператор
PrintPole (t,s); где t - количество строк, s - количество столбцов

Практическая работа

среда, 2 апреля 2014 г.

Урок 23. Тип данных - матрица

Материал к уроку - Презентация К.Ю.Полякова (слайды 102-111) скачать и сохранить в своей папке на локальном компьютере
Многие алгоритмы обрабатывают данные, организованные в виде таблицы.
Например, при составлении программы для игры "Крестики-нолики" нужно запоминать состояние каждой клетки квадратной доски.
Смотрите презентацию, указанную в начале данного сообщения.
Слайд 102. Можно поступить так: пустым клеткам присвоить значение -1, клетке, где стоит нолик - значение 0, клетке с крестиком - значение 1. Тогда получится таблица. Закрашенная клетка имеет координаты: строка 2, столбец 3. 
Такие таблицы называют матрицами или двумерными массивами. 
Запишите в тетрадь определение матрицы.
Слайд 103. Матрица на языке программирования  является структурной переменной (как массивы и строка). При объявлении матрицы (в разделе Var) указывают два диапазона индексов - для строк и столбцов.
В программе для игры  "Крестики-нолики" игровое поле (3 yна 4) будет описано так:
Запишите в тетрадь объявление матрицы
Const m=3: n=4; {чего больше - строк или столбцов?}
Var
Game: array [1..n, 1..m] of integer;
Слайд 104. Для  обращения  к одному элементу матрицы (в разделе операторов) нужно указать имя матрицы и два индекса - сначала номер строки, потом - номер столбца. 
begin
…..
Game [1,2]:= -1;
…..
end.
Алгоритм заполнения матрицы начальными значениями  реализуется в виде двойного цикла for - внешний цикл - перебор всех строк, во вложенном цикле - заполнение полей текущей строки. Для нашей игры для заполнения поля 3 на 4 алгоритм такой:
for i:=1 to n do 
begin
for j := 1 to m 
begin 
Game[i,j] := -1;write (Game [i,j]:3);end;
writeln; 
end;       
Запишите в тетрадь операторы начального заполнения матрицы




среда, 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  на  локальном компьютере



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


среда, 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 поменялись местами! 
Такая передача параметров называется передачей по ссылке, а параметры называют параметрами - переменными/
Практическое задание и Домашнее задание

вторник, 17 декабря 2013 г.

Урок 13. Вызов подпрограмм с параметрами

Продолжаем работать с подпрограммами модуля CRT

Используя подпрограммы модуля CRT, напишите программы для следующих задач:
Задача 2. Вывести на экран цветное окно, в котором написан цветной текст, вводимый с клавиатуры.
Задача 3. Составить анкету (опросник) для сбора сведений. Собранные ответы вывести в табличном виде.
Темы анкет: 
а) День рождения школы Вопросы - 1) Имя, 2) класс, 3) сколько лет учишься в той школе, 4) отзыв о школе 
б) ДКР  Вопрос - 1) Сколько нулей в двоичной записи десятичного числа 1010?  
в) Любимые предметы Вопросы 1) Имя, 2) Какие предметы нравятся, 3) какие предметы не нравятся
Написанные программы сохранить в папке progr на локальном компьютере и загрузить на облачный диск в свою папку Программирование.

среда, 27 ноября 2013 г.

Урок 11. Переменные в подпрограммах. Параметры

В подпрограммах можно использовать переменные так же, как и в основной программе.
Как передать данные из основной программы в подпрограмму?
Один из способов -  использовать параметры подпрограммы.

Параметры подпрограммы

В заголовке подпрограммы можно описать переменные, которые будут использоваться внутри подпрограммы. Эти переменные называют параметрами.
 В заголовке можно перечислить несколько параметров. В этом случае они разделяются символом ; (точка с запятой).
Для вызова процедуры с параметром требуется указать данные, которые передаются подпрограмме для обработки, в соответствии со списком параметров. 
Примеры процедур с параметром:
Описание:
procedure PrintSquare(i: integer);  
begin writeln(i*i);end;
Тогда при вызове PrintSquare(5*a-b) значение 5*a-b будет вычислено и присвоено переменной i, после чего выполнится тело процедуры.
procedure Mult2(var a: integer);
begin
  a:=a*2;
end;
после вызова Mult(d) значение d увеличится в 2 раза.
Параметры, описываемые в заголовке подпрограммы, называют формальными.
Параметры, указываемые при вызове подпрограммы, называют фактическими. 
Типы переменных, которые используют как фактические параметры, должны совпадать с типами соответствующих формальных параметров.
Практическая работа
Домашнее задание
  1. Доделать классную работу.
  2. Написать программу для Задачи 2, предложенной на Рабочем листе Подпрограммы с параметрами. 
Свои программы загрузить в свою папку Программирование на облачным диске

среда, 20 ноября 2013 г.

Урок 10. Оформление и вызов подпрограмм. Модули подпрограмм

Как на языке Pascal оформляются подпрограммы?
Где располагаются описания подпрограмм?


Модули - библиотеки подпрограмм

В среду программирования PascalABC  включены  библиотеки  процедур для различных применений (смотрите справку среды PascalABC).
Более подробно читайте в документе

Практическая работа
  1. Задание на оформление процедур (по вариантам)
  2. В программе Sum-max-min оформить в виде подпрограммы алгоритм заполнения массива.
  3. Изменить программу Sum-max-min так, чтобы входных чисел было  а) 10, б) - указанное число n
Домашняя работа

  1. Изучить  справку к среде PascalABC - Содержание - Стандартные модули - Модуль CRT
  2. Изучить работу программы CRTColors.pas. Написать программ вывода в окно CRT рисунка

*******************

разными цветами

вторник, 12 ноября 2013 г.

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

С функциями и процедурами мы знакомились еще в Лого. Тогда мы говорили о вспомогательных алгоритмах.
В программировании часто бывает нужно одну и ту же группу команд повторять несколько раз. Если повторение происходит “на месте” — используют цикл (while, или for).
Если код (операторы) нужно повторять в разных местах программы — его оформляют в виде подпрограммы.
Подпрограмма — программа, которую можно вызывать из других программ, указав ее имя.
Подпрограмма реализует вспомогательный алгоритм.
Основная программа — программа, реализующая основной алгоритм решения задачи и содержащая в себе обращения к подпрограммам.
 Правила оформления подпрограммы на языке Pascal смотрите в документе, там же находится описание практической работы.

Практическая работа
Домашнее задание
  1. Уметь рисовать блок-схемы для процедур  max и  min
  2. В программу  Sum-max-min вставить операторы вывода  условия задачи и комментарии и проверить ее работу
  3. Изменить программу Sum-max-min так, чтобы входных чисел было
а) 10, б) указанное число n
и проверить работу программы
  1. Читать справку к среде PascalABC -
Содержание - Справочник по языку - Процедуры и функции - Описание процедур и функций

среда, 23 октября 2013 г.

Урок 8. Массивы. Зачетное задание

Зачет по теме "Обработка массивов"

Ваша работа должна быть представлена в виде проекта. В проект входят следующие работы:
  1. Решение 1-ой задачи*)
  2. Оформление проекта  на бумаге
  3. Взаимопроверка решения и оформления

Сроки выполнения:

проект - 31 октября
взаимопроверка - 14. ноября
Варианты задач для зачета разосланы по электронной почте и указаны в листе оценивания.
Тексты задач для зачета

Правила оформления по задачам

Требования к  проекту описаны в документе.
Правила оформления программы описаны в документе.

Взаимопроверка

В рамках зачета каждый учащийся должен проверить одну работу товарища по определенным критериям.
Правила взаимопроверки: каждый учащийся создает в своей папке Программирование копию документа Критерии-проверки и оценивает в нем свой проект  и проект указанного учителем учащегося.  
Примечание *) Учитывая большой объем работы и небольшое время, отведенное на зачет, сокращаю количество задач до одной - любой из указанных в письме (в листе оценивания) двух. 

вторник, 22 октября 2013 г.

Урок 7. Pascal. Массивы. Зачет

Обобщим тему "Обработка массивов"

Любая обработка массива связана с алгоритмической конструкцией ЦИКЛ. В языке Passcal есть 3 оператора, реализующих цикл:
Цикл с параметром: оператор For - скачайте и смотрите swf-ролик
Цикл с предусловием: оператор While  - скачайте и  смотрите swf-ролик 
Цикл с постусловием: оператор  repeat - можно разобрать самостоятельно
Поработайте со страницами  теста №№ 24 - 32. Справка по циклам находится на странице теста №23.
Нарисуйте в тетради блок-схемы для каждого разобранного в тесте примера.
Блок-схема в тетради - основание для оценки.

Зачет по теме "Обработка массивов"

В зачет входят следующие работы:
  1. Решение 2-х задач
  2. Оформление отчета по задачам в общем документе
  3. Взаимопроверка решения и отчета
Варианты задач для зачета разосланы по электронной почте и указаны в листе оценивания.
Правила оформления по задачам и взаимопроверки будут описаны в следующем посте.

вторник, 1 октября 2013 г.

Урок 5-6. Массивы. Поиск элемента с заданными свойствами


Массив  из символьных элементов

Массив состоит из однородных элементов одинакового типа.  В документе перечислены типы данных,  с которыми можно работать в среде Pascal.
С типами Целые,  Вещественные, Массивы мы уже работали.
Рассмотрим теперь тип Символы. в сравнении с типом Целые:
название типатип диапазон значенийРазмер в байтах
ЦелыеInteger-32768 .. 327672
СимволыCharrПолный набор ASCII символов1

Следующие стандартные функции предназначены для работы этим типом:
Стандартная функция Chr(Х) возвращает символ с числовым  кодом X.
Стандартная функция UpCase ( C ) преобразует символ C  из нижнего регистра в верхний, LowCase ( C ) преобразует символ C  из верхнего регистра в нижний.

Поиск элемента с заданными свойствами

Задачи на обработку массивов, в основном, заключаются в поиске элемента или элементов с заданными свойствами.
Алгоритмы поиска состоят из алгоритмических конструкций цикл (для организации просмотра элементов) и ветвления (для сравнения элемента с образцом).
В алгоритмах поиска есть 2 возможности окончания работы:
  • нашли элемент - поиск удачный (выводится номер элемента и/или сам элемент); 
  • необходимого элемента нет - поиск удачный (номер элемента - 0)
Алгоритмов, которые ведут к правильному результату, может быть много. В программировании принято выбирать лучший, но какой алгоритм считается более эффективным?
Признаки эффективности:
  • Сколько вычислительных ресурсов они требуют (время работы, память). 
  • Сложность  — количество элементарных действий в вычислительном процессе алгоритма
Обычно эффективность оценивается  Сложностью.


вторник, 17 сентября 2013 г.

Уроки 3 и 4. Структура данных - массив. Обработка массива

Итоги предыдущего урока

Классное задание выполнили практически все, но с замечаниями. Результаты смотрите в  листе оценивания. Однако, домашнее задание не выполнил никто :( Вы должны повторить, как оформляется цикл в программе. Скачайте видео о цикле с параметром и посмотрите его. Выполните задание Решение задач. Для повторения основных понятий языка Pascal скачайте тест и пройдите его.
Жду до конца недели. 

Уроки 3 и 4. Структура данных - массив. Обработка массива. Решение задач

Типы данных   Integer, Real, Char  называют простыми данными.
Это значит, что одному имени переменной соответствует одно значение, занимающее одну область памяти (ячейку) определенной длины.
Для хранения множества однородных данных применяют структурированные типы данных.
Структура представляет собой последовательность пронумерованных ячеек одинаковой длины, которая имеет одно имя. Каждая ячейка структуры имеет имя такого вида: <имя> [индекс].
Например:
mass [1] – 1-я ячейка в последовательности mass
Массив – ограниченная совокупность однородных величин.
Элементы массива (значения) располагаются в памяти непрерывным блоком и имеют одно и то же имя. Различают элементы по порядковому номеру (индексу).

Пример описания массива в программе :

 var mass : array [1..100] of real;

Более подробно о переменных разных типов и о массиве читайте в документе.

 (лабораторную работу и домашнее задание в этом документе не выполняйте)

Практические задания и домашнее задание на 26.09
Ниже даны ссылки на Рабочие листы с  заданиями и домашними заданиями. Каждый ученик получил электронное письмо, в котором указано, какое именно задание нужно выполнять.
Разбор задач
Решение задач
Задачи посложнее

среда, 11 сентября 2013 г.

Урок 2. Структура программы. Описание данных

Итоги
Подведем итоги работы в классе 5 сентября и дома.
Все вошли в среду PascalABC и написали одну или две простые программы, убедились, что они работают. Это хорошо.
Люда выполнила и расчетную программу и попыталась написать еще одну дома. Молодец!
Остальные, вероятно, не смогли попасть на этот блог :(

Если вы посмотрели видео Митч Резник о детях и программировании, то может быть поняли, почему мы занимаемся программированием.

 Работа на уроке на 12 сентября
Правила оформления программ (выполнять обязательно)!
  • В имени файла *.pas должен присутствовать идентификатор программы, например Pas1_1_cl_name.pas
  • В имени файла *.pas должна присутствовать фамилия ученика. Например, Pas1_1_cl_Petrov.pas
  • Программу следует начать с комментария, в котором содержится условие задачи и набор тестовых данных. Тестовые данные — это те данные, на которых надо проверять работу программы.
  • Программу следует сопровождать комментариями по тексту
  • Программу следует начать с приветствия: writeln('Вас приветствует программа Петрова П')
Структура программы: 
 Заголовок программы;
 Описание переменных, необходимых для работы программы;
   begin
      алгоритм обработки данных
   end.
Проверь себя

Описание переменных
var 
список1 переменных : тип1;
список2 переменных : тип2;
...
Задание Эссе
Задание на 12 сентября и домашнее задание на 19 сентября
Задание Решение задач

среда, 4 сентября 2013 г.

Урок 1. Попытаемся работать с блогом

Зачем изучать программирование? 
Обсудим, что дает учащимся изучение программирования?
В конце прошлого года мы занимались с алгоритмами для обработки величин.
Для описания алгоритма применяли язык блок-схем.
Исполнителем наших программ был компьютер. Для записи алгоритма на языке, понятном компьютеру, применяли язык Pascal.

Для работы откройте документ Урок 1.