“ Основы программирования на уроках информатики ”
Муниципальное общеобразовательное учреждение “Средняя общеобразовательная школа №22”
х.Стародворцовский, ул Ленина 30
Телефон (86550) 41-431
Факс (86550) 41-431
E-mail StarSchool 22@ fromru . com
http :// www . starschool 22. jino - net . ru
Анализ концепций современной информатики и новых информационных технологий.
Знание языков программирования не делает из человека программиста.
В начале внедрения ОИВТ в школы, под компьютерной грамотностью понималось умение программировать. Сейчас уже практически всеми осознано, что школьная информатика не должна быть курсом программирования. Большая часть пользователей современных персональных компьютеров не программирует и не нуждается в этом. Сегодня созданы обширные программные средства компьютерных информационных технологий, позволяющих работать с ПК непрограммирующему пользователю. Поэтому минимальным уровнем компьютерной грамотности является овладение средствами компьютерных информационных технологий
Анализ концепций современной информатики и новых информационных технологий.
Однако ошибочно было бы ориентировать курс Информатики только на практическое освоение работы с текстовыми редакторами, электронными таблицами, базами данных и пр.
Изучение Информатики в школе должно преследовать две цели:
- общеобразовательную
- прагматическую.
Общеобразовательная цель заключается в освоении учащимся фундаментальных понятий современной информатики.
Прагматическая - в получении практических навыков с аппаратными и программными средствами современных ПК.
Области применения ПК можно классифицировать следующим образом.
Следует различать две линии:
- инструментальная; кибернетическая.
- инструментальная;
- кибернетическая.
Анализ концепций современной информатики и новых информационных технологий.
Инструментальная линия, в свою очередь делится на два направления:
- Инструментальные средства для непосредственной работы пользователя с информацией. Сюда относятся популярные средства компьютерных информационных технологий: редакторы (текстовые, графические, музыкальные), базы данных, электронные таблицы и т.п.
- Инструментальные средства для разработки программ. Это системы программирования на базе универсальных языков программирования. Кроме того, сюда следует отнести инструментальные системы для разработки специализированных программ, например, обучающих программ, программных средств САПР, программ управления в реальном времени и пр.
В кибернетической линии также можно различить два направления:
- Применение ПК для управления различными объектами и процессами.
- Применение ПК для моделирования различных процессов и явлений.
Анализ концепций современной информатики и новых информационных технологий.
По мере распространения компьютерной техники вся совокупность взаимодействующей с ней людей все более четко разделяются на две группы:
- системные и прикладные программисты, разрабатывающие системы математического обеспечения и пакеты прикладных программ для решения больших классов задач из самых различных отраслей;
- широкий круг пользователей.
Анализ концепций современной информатики и новых информационных технологий.
Для представителей первой группы написание программ на тех или иных языках или непосредственно в машинных кодах является обязательной составной частью их профессиональной деятельности. Более того, продуктом деятельности системных программистов являются средства общения с ПК, предназначенные для широкого круга пользователей.
Общение пользователей с ПК протекает в рамках специализированных, заранее разработанных программных систем, использующих привычную для них профессиональную и бытовую терминологию.
Таким образом, для значительного большинства людей , использующих ПК в своей работе или быту, знакомство с конкретными языками и системами необходимо не в большей степени, чем телефонному абоненту нужны технические подробности работы телефонного аппарата или АТС.
Анализ концепций современной информатики и новых информационных технологий.
Деятельность пользователя по описанию алгоритма решаемой задачи состоит в том, что, видя перед собой конечную цель - результат, он конструирует программу (в широком смысле слова), план действий, представляющий последовательность отдельных более или менее стандартных операций.
То, что в обиходе называют иногда программистскими способностями, определяется в первую очередь умением представить сложное действие в виде организованной совокупности простых. При этом пользователь должен спланировать не только сами действия, но и используемые при этом информационно - технические ресурсы.
Анализ концепций современной информатики и новых информационных технологий.
Информатика как образовательная дисциплина быстро развивается. Сегодня целью курса информатики в школе является повышение эффективности применения человеком компьютера как инструмента.
Компьютерная грамотность определяется не только умением программировать, а, в основном, умением использовать готовые программные продукты, рассчитанные на пользовательский уровень. Эта тенденция появилась благодаря широкому рассмотрению т.н. "мягких" продуктов, ориентированных на неподготовленных пользователей.
Принципы структурной алгоритмизации
На сегодняшний день самой популярной методикой программирования является структурное программирование "сверху - вниз". Эта технология программирования представляет собой процесс разбиения алгоритма на все более мелкие части с целью получить такие элементы, для которых можно легко написать конкретные предписания.
На сегодняшний день самой популярной методикой программирования является структурное программирование "сверху - вниз". Эта технология программирования представляет собой процесс разбиения алгоритма на все более мелкие части с целью получить такие элементы, для которых можно легко написать конкретные предписания.
Структурная алгоритмизация основывается на двух принципах:
Структурная алгоритмизация основывается на двух принципах:
последовательная детализация "сверху - вниз";
ограниченность базового набора структур для построения алгоритмов любой степени сложности.
Принципы структурной алгоритмизации
Из принципов вытекают требования структурного программирования:
Из принципов вытекают требования структурного программирования:
программа должна составляться мелкими шагами; таким образом, сложная задача разбивается на достаточно простые, легко воспринимаемые части;
логика программы должна опираться на минимальное число достаточно простых базовых управляющих структур.
Принципы структурной алгоритмизации
Базовый набор структурной алгоритмизации содержит линейные, разветвляющиеся и циклические структуры .
Можно перечислить основные свойства и достоинства структурного программирования:
возможность преодоления барьера сложности программ;
возможность преодоления барьера сложности программ;
возможность демонстрации правильности программ на различных этапах решения задачи;
возможность демонстрации правильности программ на различных этапах решения задачи;
наглядность программ;
наглядность программ;
простота модификации (внесение изменений) программ;
простота модификации (внесение изменений) программ;
Выбор подхода к преподаванию структурного программирования.
При решении задач с использованием структурного программирования можно выделить два основных направления :
"алгоритмический" подход
"алгоритмический" подход
схема решения задачи описывается на алгоритмическом языке (
"программный" подход
"программный" подход
описание решения задачи сразу на конкретном языке программирования.
Выбор подхода к преподаванию структурного программирования.
В соответствии с этими направлениями чаще всего и преподается программирование. Уровень развития современных систем программирования (например, Visual Basic ), благодаря хорошо организованным средствам отладки, позволяет создавать программы без использования первого подхода. Однако программный подход требует от человека наличие определенного стиля мышления и навыков работы с языком программирования. Очевидно, что специалисты, имеющие пусть даже небольшой опыт в программировании, пользуются программным подходом. Им не обязательно описывать решение задачи на алгоритмическом языке, они разрабатывают ее в "уме". В преподавании такой подход хорош при изучении второго языка программирования, когда ученики уже имеют определенную подготовку.
Выбор подхода к преподаванию структурного программирования.
Алгоритм должен быть определен настолько четко, чтобы его указаниям мог следовать даже компьютер.
Дональд Э. Кнут
При изучении структурного программирования на начальном этапе более подходит "алгоритмический" подход. Он более полно и последовательно позволяет раскрыть переход от математической формы описания задачи к ее программной реализации и помогает формировать у обучаемых алгоритмический стиль мышления, необходимый при решении задач с использованием языков программирования и изучении многих технических и общеинженерных дисциплин. Кроме того, на основе алгоритмического подхода можно изучать сразу несколько языков программирования (естественно, если позволяют время и техника).
Выбор подхода к преподаванию структурного программирования.
В силу перечисленных достоинств наиболее верным и методически правильным для преподавания программирования на начальном этапе обучения является алгоритмический подход.
При изучении программирования с использованием алгоритмического подхода учащиеся сталкиваются с двумя проблемами:
- описание и детализация решения задачи на алгоритмическом языке;
- переход от алгоритмических конструкций к конкретному языку программирования.
На разрешение этих трудностей должно быть направлено методическое обеспечение.
В первом случае это могут быть схемы основных базовых структур с описанием их работы и особенностей использования при построении алгоритмов.
Во втором - таблицы перевода алгоритмических конструкций в конструкции языка программирования.
Базовый набор алгоритмических структур.
Теория структурного программирования доказывает, что алгоритм любой степени сложности можно построить с помощью основного базового набора структур:
Теория структурного программирования доказывает, что алгоритм любой степени сложности можно построить с помощью основного базового набора структур:
16
последовательная (линейная) структура;
циклическая структура.
ветвящаяся структура;
Базовый набор алгоритмических структур.
Оператор присваивания
переменная := выражение
Составной оператор
begin
оператор 1;
........
оператор N
end;
начало
оператор 1;
........
оператор N
конец;
then ; если то ; Оператор " width="640"
Базовый набор алгоритмических структур.
Условие
Fals e
True
Условный оператор
If then
else ;
если то
иначе ;
Да
Нет
Оператор 2
Оператор 1
Условие
False
True
Да
Нет
If then ;
если то ;
Оператор
Базовый набор алгоритмических структур.
Оператор выбора
Case оf
: ;
..................
: ;
else
end ;
Выражение-переключатель (селектор)
.
.
.
.
.
Оператор N+1
Оператор N
Оператор 1
Выбор из
: ;
..................
: ;
иначе
конец ;
Базовый набор алгоритмических структур.
Оператор цикла с предусловием
While dо
;
Условие
False
True
Пока выполнять
;
Да
Нет
Оператор
Базовый набор алгоритмических структур.
Оператор цикла с постусловием
Repeat
;
........
until ;
Оператор 1
. . . . . . . .
Оператор 2
Условие
False
True
Да
Нет
Повторять
;
........
покаНе ;
КонЗн Да Нет Оператор Параметр цикла + 1 " width="640"
Базовый набор алгоритмических структур.
Оператор цикла с параметром
For
:=
to
Do
;
Для
:=
до
выполнять
;
Параметр цикла := НачЗн
Fals e
True
Параметр цикла КонЗн
Да
Нет
Оператор
Параметр цикла + 1
Основные операторы
Паркетчик
QBasic
1. Начальные операторы
Pascal
Программа {…}
Можно не печатать ни чего
2. Описание числовых переменных
Program ;
Цел: - целочисленные переменные
3. Оператор условия
Begin
Если описание переменной отсутствует, то она – вещественная;
Если () то
Var :
Defingt - целочисленные переменные
End.
Во всех трех языках конструкция ИНАЧЕ (ELSE) может отсутствовать. В этом случае в языке Pascal необходимо после последнего оператора END поставить точку с запятой.
Inttgtr;- целочисленные
{; …} иначе {; …}
IF () THEN
Переменные
4. Оператор цикла по условию
IF () THEN
Делать пока ()
begin
Var :
Real;- вещественные
…
WHILE ()
{;…}
ELSE
…
WHILE () DO
begin
end
…
ELSE
…
WEND
…
Begin
END IF
end
…
end
Основные операторы
Паркетчик
QBasic
5.Оператор цикла с параметром
Pascal
Делать от = до с шагом
FOR =
6. Работа с подпрограммами
{;…}
Подпрограмма
FOR =
Обращение к подпрограмме производится оператором:
SUB
ТО
Procedure
()
( короб :
Вызвать
STEP
ТО
DO
CALL
()
,
Для возврата в главную программу служит оператор:
begin
(короб :;
…
Begin
…
()
блюд : )
Возврат ;
()
блюд: ;
{ ; …}
NEХТ
ENDSUB
7. Операторы ввода и вывода информации
EXITSUB или ничего
Если нужен шаг не 1,
end;
…
…
EXIT;
Ввести ;
А-1, вместо ТО пишем
end;
Сообщить ;
INPUT “ “
DOWNTO
PRINT “”;
READLN ();
WRITE (,
;
Структурное программирование
Рассмотрим некоторые приемы структурного программирования на языке Pascal .
Структура программы имеет следующий вид:
Program Имя программы;
{блок описания глобальных:
модулей,
меток,
констант,
типов,
переменных,
процедур,
функций }
begin
{тело программы}
end.
Структурное программирование
Рассмотрим структурированный подход к написанию программ. При решении практически любой задачи можно выделить:
Ввод исходных данных;
Обработка этих данных;
Вывод результатов работы по обработке данных.
Для обозначения этих трех действий определим три процедуры – Init, Work, Exi.
Наша программа примет следующий вид:
Program Primer;
Procedure init;
begin
end ;
Procedure Work;
begin
end ;
Procedure Exi;
begin
end ;
begin
Init; {операция ввода данных}
Work; {операция обработки данных}
Exi; {операция вывода результатов}
end .
Решение задач
program Primer;
var
Chislo1,Chislo2,Chislo3,Resultat:Integer;
procedure Init; { Ввод данных}
begin
Write (‘Введите первое число -');
Readln (Chislo1);
Write (' Введите второе число -');
Readln (Chislo2);
Write (' Введите третье число -');
Readln (Chislo3);
end;
procedure Work; { Сравнение входных данных }
begin
if (chislo1and (chislo1then resultat:=chislo1;
if (chislo2and (chislo2then resultat:=chislo2;
if (chislo3and (chislo3then resultat:=chislo3;
end;
procedure Exi; { Вывод результата }
begin
writeln (resultat);
end;
Begin { Основная программа }
Init;
Work;
Exi;
End .
Рассмотрим следующую задачу: Надо ввести три целых чисел с клавиатуры и из них найти минимальное по значению число. Результат вывести на экран.
Решение задач
Рассмотрим задачу предлагаемую на олимпиаде по программированию Интеллект:
Даются координаты планеты и координаты космического корабля. Космический корабль способен телепортироваться только в диагональных направлениях. Следует определить количество телепортаций. Входной файл input.txt , представляет собой пары координат. Выходной файл output.txt, должен содержать количество телепортаций, если невозможна телепортация то в выходной файл записывается 0.
Пример входного файла:
3 8 3 6 4 7
5 10 6 5 6 8
Ответ: Ответ: Ответ:
1 2 0
Y2
В1
Y1
В2
В3
А
|y2-y1|
|x2-x1|
Х1
X2
Если |X 2 -X 1 |- |Y 2 -Y 1 | = 0, количество переходов равно 1, t=1
Если |X 2 -X 1 |- |Y 2 -Y 1 | четное число, то количество переходов равно 2, t=2
Если |X 2 -X 1 |- |Y 2 -Y 1 | нечетное число, то телепортация невозможна , t=0
Решение задач
Program Primer2;
var x1,y1,x2,y2,x,y,t,c: integer ;
Procedure init; { Ввод данных }
begin
assign ( input ,'input.txt');
reset(input );
read (x1,y1,x2,y2);
end ;
Procedure Work; { Сравнение входных данных }
begin
x:= abs (x1-x2);
y:= abs (y1-y2);
c := abs (x-y);
if c=0 then t:=1 else
if (c/2 = с div 2) then t:=2 else t:=0;
end ;
Procedure Exi; { Вывод результата }
Begin
assign (output, 'output.txt');
rewrite(output);
writeln (t);
end ;
begin
Init; { операция ввода данных }
Work; { операция обработки данных }
Exi; { операция вывода результатов }
end .
Решение задач
Рассмотрим следующею задачу предлагаемую на олимпиаде по программированию Интеллект:
Из входного файла input.txt считывается строка вида а +/- в = х , при этом х может стоять на любом месте. Необходимо вычислить значение выражения и вывести результат в выходной файл output.txt
Пример входного файла:
7+5=Х Х-5=3
Ответ: Ответ:
8 12
При считывания строки возможны три варианта:
При считывания строки возможны три варианта:
Х
Х
Х
Решение задач
procedure Work; { Обработка входных данных }
program Primer3;
var
begin
s,a,b,c,i,code:integer;
x:='x';
Word,x:string;
I:= pos (x,Word);
Case I of
begin { Основная программа }
1: begin
val (word[5],c,code);
Init;
Work;
val (word[3],b,code);
if word[2]='+' then s:=c-b else s:=c+b;
Exi;
end ;
End .
3: begin
val (word[5],c,code);
val (word[1],b,code);
if word[2]='+' then s:=c-b else s:=b-c;
end;
5: begin
val (word[1],c,code);
val (word[3],b,code);
if word[2]='+' then s:=c+b else s:=c-b;
end ;
end ;
end;
procedure Init; { Ввод данных }
begin
assign ( input ,'input1.txt');
reset(input);
read (Word);
writeln (word);
end;
procedure Exi; { Вывод результата }
begin
assign ( output , 'output.txt');
rewrite(output );
writeln (s);
end;
Спасибо за внимание.