вторник, 3 апреля 2018 г.

Шпаргалка по массивам

Публикую ссылки на справочные материалы по теме "Массивы" 

Теоретический материал >>>

Примеры программ с использованием массивов >>>

суббота, 24 марта 2018 г.

If и While

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

Для осуществления ветвления в программе используется условный оператор.
Он имеет полную и неполную формы:

Полная форма:
If  условие Then оператор1 Else оператор2

Неполная форма: If  условие Then оператор1

Условный оператор выполняется следующим образом:
  1. проверяется условие
  2. если условие выполнено, выполняется оператор1
  3. если условие не выполнено, в полной форме выполняется оператор2, а в неполной форме никаких действий не выполняется
  4. осуществляется переход к следующей команде
Условие может быть простым или сложным.
Простое условие – сравнение значений двух выражений с помощью знаков сравнения:
< – меньше, > – больше, <= – меньше или равно, >=   – больше или равно, =   – равно, <> – неравно

Например:
1) X>=3;       2) A<>B;      3)   sqr(c)=sqr(a)+sqr(b)

Сложное условие – несколько простых условий, соединенных логическими операциями:
Not – не,    And – и,    Or – или,     Xor – исключающее или

Простые условия, входящие в состав сложного, записываются в скобках.
Например:
1) (X>3) and (Y<=17) and (Z<>2) выполнено, если выполнены все простые условия
2) (X<2) or (X=8) or (X>=12) выполнено, если выполнено хоть одно из простых условий
3) (X=7) xor (Y=9) xor (Z=1) выполнено, если выполнено ровно одно из простых условий

Операторы 1 и 2 могут быть простыми и составными. Простой оператор – один оператор.
Составной оператор – несколько операторов, заключенных в операторные скобки (Begin … End).

Примеры:
1. Программа выводит на экран большее из   двух целых чисел
Program max;
Var a,b,m:integer;
Begin
  Write(’Введите 2 числа’);
  Readln(a,b);
  If a>b then writeln(a, ’большее’)
   else writeln(b, ’большее’)
End.

2. Программа вычисляет значение функции  - квадратный корень из х
Program func1;
Var x,f:real;
Begin
  Write(’x=’);
  Readln(x);
  If x>=0 then begin
                 f:=sqrt(x);
                 Writeln(’f=’,f:7:2)
               end
End.

3. Программа вычисляет значение функции
Program func2;
Var x,f:real;
Begin
  Write(’x=’);
  Readln(x);
  If x<2 then f:=-x
         else if x=2 then f:=0
                     else f:=x;
  Writeln(’f=’,f:7:2)
End.



В классе мы успели вспомнить только цикл с предусловием. Здесь же публикую материал по всем видам циклов.

Операторы цикла используются для реализации многократного выполнения одной или нескольких команд. Различают 3 типа циклов:
  • цикл с параметром;
  • цикл с предусловием;
  • цикл с постусловием.
Все 3 типа реализованы операторами языка Pascal.

Цикл с параметром
Цикл с параметром используется тогда, когда заранее известно количество повторений и шаг постоянен. Этот тип цикла реализуется в языке Pascal оператором For, который имеет 2 варианта записи:
1) For параметр цикла:=начальное значение to конечное значение do тело цикла
2) For параметр цикла:=начальное значение downto конечное значение do тело цикла
Параметр цикла – переменная целого типа;
начальное и конечное значения – выражения того же типа;
тело цикла – простой или составной оператор.
- Цикл повторяется, пока значение параметра лежит в интервале между начальным и конечным значениями
- При каждом повторении цикла значение параметра автоматически изменяется: в первом варианте увеличивается, а во втором уменьшается на 1.
- Значение параметра цикла можно использовать, но нельзя изменять внутри цикла.

Примеры:
1. Программа выводит на экран числа от 1 до 7
Program prog1;
var i:integer;
begin
  for i:=1 to 7 do writeln(i);
end.

2. Программа выводит на экран числа от 7 до 1
Program prog2;
var i:integer;
begin
  for i:=7 downto 1 do writeln(i);
end.

3. Программа вычисляет S=1+2+…+N, где N - введенное целое число
Program sum1;
var i,n,s:integer;
begin
  write('n=');
  readln(n);
  s:=0;
  for i:=1 to n do s:=s+i;
  writeln('s=',s);
end.

Цикл с предусловием (цикл – пока)
Цикл с предусловием – наиболее универсальная циклическая структура (с его помощью можно представить любой цикл). В языке Pascal этот вид цикла реализован оператором While:
While условие do begin тело цикла end
Оператор While выполняется следующим образом:
1. проверяется условие
2. если условие выполнено, выполняется тело цикла и происходит переход к п. 1
3. если условие не выполнено, то происходит переход к следующей команде (выход из цикла)
Особенности:
- Цикл повторяется, пока условие выполнено
- Если изначально условие не выполнено, то тело цикла не выполняется ни разу
- Оператор While может зациклиться: если изначально условие выполнено, а в теле цикла его значение не изменяется, то выхода из цикла не происходит

Примеры:
1. Программа вычисляет S=1+2+…+N, где N - введенное целое число
Program sum1;
var i,n,s:integer;
begin
  write('n=');
  readln(n);
  s:=0; i:=1
  While i<=n do
      begin
      s:=s+i; i:=i+1;
      end;
  writeln('s=',s);
end.

2. Написать программу решения уравнения ax + b = 0, если a = 1, 2, 3, 4, 5
Program ur_e;
var a:integer; b,x:real;
begin
  write('введите коэффициент b');
  readln(b);
  a:=1;
 While a <=5 do
  begin
  x:=-b/a;
  writeln(’При a= ’, a, ’x=’, x:5:2);
  a:=a+1;
  end;
end.

Цикл с постусловием (цикл – до)
Цикл с постусловием реализован в языке Pascal оператором Repeat:
Repeat тело цикла until условие
Оператор Repeat выполняется следующим образом:
1. выполняется тело цикла
2. проверяется условие
3. если условие не выполнено, то происходит переход к п. 1
4. если условие выполнено, то происходит переход к следующей команде (выход из цикла)

Особенности:
- Цикл повторяется, пока условие не выполнено (до момента, когда условие выполниться)
- Тело цикла выполняется по крайней мере 1 раз
- Оператор Repeat может зациклиться: если изначально условие не выполнено, а в теле цикла его значение не изменяется, то выхода из цикла не происходит
- Если тело цикла Repeat – составной оператор, то операторные скобки не обязательны (тело цикла в этом операторе всегда ограничено ключевыми словами Repeat и Until)

Пример:
Написать программу решения уравнения ax + b = 0, если a = 1, 2, 3, 4, 5
Program ur_e;
var a:integer; b,x:real;
begin
  write('введите коэффициент b');
  readln(b);
  a:=1;
 repeat
  begin
  x:=-b/a;
  writeln(’При a= ’, a, ’x=’, x:5:2);
  a:=a+1;
  end;
end.

вторник, 13 марта 2018 г.

Ввод и вывод, оператор присваивания, линейные программы

Размещаю шпаргалку по пройденному материалу

Pascal – язык программирования структурного типа, т.е. любая программа, написанная на этом языке, имеет определенную структуру:

Program <имя программы>;
Const <раздел описания констант>;
Var <раздел описания переменных>;
Begin
  <раздел операторов>
End.

Все разделы программы отделяются друг от друга знаком «;».
Begin и End – «операторные скобки». Они используются для обозначения начала и конца группы команд, но сами командами не являются. Поэтому точка с запятой после Begin и перед End не ставится. 
Имя программы, а также имена переменных, констант и других используемых в программе объектов называются идентификаторами.
- Идентификаторы задает сам программист
- В качестве идентификатора может использоваться любая последовательность латинских букв, цифр и знака подчеркивания, начинающаяся с буквы
- Имена идентификаторов не могут совпадать
- Строчные и прописные буквы не различаются

Существуют стандартные и пользовательские (создаваемые самим программистом) типы данных (переменных).
Некоторые стандартные типы:
Integer – целые числа (-10; 0; 1; 2; … )
Real – вещественные числа (-10; -7,241; 0; 1; 4,25; …)
Boolean – логический тип (true и false)
Char – символьный тип (’а’; ’б’; ’1’; ’*’ …)
String – строковый тип (’а’; ’б’; ’1’; ’123’; ’абв’; ’*’ …)

Пример задания переменных: Var x:integer; Y:char; a:integer; b:integer;
Переменные одного типа можно описывать вместе: Var x,a,b:integer; Y:char;

Вывод данных на экран осуществляется с помощью оператора Write (или Writeln):
Write (список вывода) или Writeln (список вывода)
Элементами списка могут быть константы, переменные, выражения. Указанные данные выводятся на экран в порядке их перечисления в списке. Для вывода на экран определенного текста он указывается в кавычках.
При использовании оператора Writeln после вывода на экран осуществляется переход на следующую строку, при использовании оператора Write перехода на следующую строку не происходит. 
Например, 
1. Write(a) – вывод на экран значения переменной (или константы) a;
2. Write(’a’) – вывод на экран буквы а;
3. Write(’a’, b, c) – вывод на экран буквы а и значений переменных (или констант) b и c;
4. Write(’a,’, b, ’,’, c) – вывод на экран буквы а и значений b и c через запятую;
5. Write(’a’);    – вывод на  экран букв a и b (в строку)
    Write(’b’)
6. Writeln(’a’);     – вывод на  экран букв a и b (в столбик)
    Write(’b’)
Ввод данных с клавиатуры осуществляется с помощью оператора Read(список переменных) или Readln(список переменных)
При выполнении этого оператора компьютер ожидает ввода с клавиатуры значений переменных в том порядке, в каком они указаны в списке. Вводить значения следует через пробел, после окончания ввода нажимают клавишу Enter. При использовании оператора Readln после ввода значений осуществляется переход на следующую строку, при использовании оператора Read перехода на следующую строку не происходит. 
С клавиатуры можно вводить только значения переменных.
Например,
1. Read(a)– ввод значения переменной a;
2. Read(’a’)  – неверная команда, т. к. вводить можно только значения переменных;
3. Read(a,b,c) – ввод значений переменных a, b, c;

Пример. Программа выводит на экран введенное число с одним знаком после запятой
Program chislo;
Var N:Real;
Begin
  Write(’Введите число: ’);
  Readln(N);
  Writeln(’N=’, N:5:1)
End.

Вид экрана после выполнения программы, будет следующим:
Введите число: . . .
N=. . .
Если введут число 7, вид экрана после выполнения программы, будет следующим:
Введите число: 7
N=  7.0

Оператор присваивания
Значения переменных можно изменять в процессе выполнения программы с помощью оператора присваивания. Команда присваивания имеет следующий вид:
переменная: =выражение
Оператор присваивания выполняется следующим образом:
1. вычисляется значение выражения
2. переменная получает это значение
При этом тип выражения (тип выражения определяется типом его значения) должен быть совместим с типом переменной. Например, числовой переменной нельзя присвоить в качестве значения символ или строку символов и наоборот; переменной символьного типа Char нельзя присвоить в качестве значения строку символов, а переменной типа Integer – значение, тип которого Real и т.д. Но при этом обратное возможно: переменной типа String можно присвоить значение типа Char, а переменной типа Real – значение типа Integer.

Выражение может включать в себя константы, переменные, знаки операций, функции, скобки.
Некоторые операции:
+ сложение
вычитание
* умножение
/ деление
div деление нацело (например, значением выражения 7div4 будет 1)
mod остаток от деления нацело (например, значением выражения 7mod4 будет 3)

Некоторые функции:
Abs(x) модуль х
Cos(x) косинус х,    Sin(x) – синус х
Sqr(x) квадрат х, Sqrt(x) – корень из х
Random случайное число из отрезка [0, 1], Random(x) – случайное число из отрезка [0, х]

Обратите внимание, что аргументы  функций записываются в скобках!

Например,
1. a:=14.2     – переменной а присваивается значение 14,2
2. k:=’слово’   – переменной k присваивается значение ’слово’
3. x:=x–4          – значение переменной x уменьшается на 4
4. c:=a+b    – переменной c присваивается сумма значений переменных (или констант) a и b
5. с:=sin(sqr(a+b))  – переменной c присваивается значение синуса от квадрата суммы         переменных  (или констант) a и b
6. x1:=(–b+sqrt(sqr(b)–4*a*c))/(2*a)
        x2:=(–b–sqrt(sqr(b)–4*a*c))/(2*a)
 – значения переменных x1 и x2 вычисляются по формуле корней квадратного уравнения

четверг, 22 февраля 2018 г.

Поздравляем!

С 6 по 9 февраля в Центре творчества и образования Фрунзенского района прошел районный тур конкурса мультимедийных презентаций "Моя будущая профессия". В рамках конкурса необходимо было подготовить презентацию по одной из предложенных организаторами тем:
  • Я выбираю профессию;
  • Мои первые шаги в профессии;
  • Профессии моей семьи; 
  • Профессии будущего (о профессиях, появившихся недавно или связанных с техническим прогрессом);
  • Юбилей в профессии

Кроме этого, автор работы должен был в очном выступлении представить свою презентацию.
От нашей школы в конкурсе приняла участие ученица 10А класса Мартынова Анна.
Несмотря на высокую конкуренцию, в упорной борьбе Аня со свое презентацией "Дизайнер дополненной реальности" стала ПОБЕДИТЕЛЕМ в номинации "Профессия будущего". В марте, как победителю районного тура, Ане предстоит представлять Фрунзенский район и нашу школу в городском этапе конкурса "Моя будущая профессия".

Поздравляем Аню с победой. И болеем в городском туре!

вторник, 20 февраля 2018 г.

Переводим на табличный язык

Уважаемые десятиклассники!

Иногда, задачи, которые вам придется решать с помощью компьютера будут сформулированы на обычном, "человеческом" языке. В этом случае возникнет сложность не только в ее решении, но и в переводе (в информатике это называют "формализацией") условия  на язык компьютерного приложения, в котором предполагается решение данной задачи.
Нечто подобное мы и попытаемся с вами сделать в рамках очередного домашнего задания)).
Предлагаю средствами Excel решить две задачи:

Задача 1. Четверо друзей путешествуют на трех видах транспорта: поезде, самолете и пароходе. Николай проплыл 150 км на пароходе, проехал 140 км на поезде и пролетел 1100 км на самолете. Василий проплыл на пароходе 200 км, проехал на поезде 220 км и пролетел на самолете 1160 км. Анатолий пролетел на самолете 1200 км, проехал поездом 110 км и проплыл на пароходе 125 км. Мария проехала на поезде 130 км, пролетела на самолете 1500 км и проплыла на пароходе 160 км.
Построить на основе вышеперечисленных данных электронную таблицу.
  • Добавить к таблице столбец, в котором будет отображаться общее количество километров, которое проехал каждый из ребят.
  • Вычислить общее количество километров, которое ребята проехали на поезде, пролетели на самолете и проплыли на пароходе (на каждом виде транспорта по отдельности).
  • Вычислить суммарное количество километров всех друзей.
  • Определить максимальное и минимальное количество километров, пройденных друзьями по всем видам транспорта.
  • Определить среднее количество километров по всем видам транспорта.
Задача 2. В банке производится учет своевременности выплат кредитов, выданных 10 организациям (среди них есть бюджетные). Известна сумма кредита и сумма, уже выплаченная организацией. Для должников установлены штрафные санкции: если фирма выплатила кредит более чем на 70 процентов, то штраф составит 10 процентов от суммы задолженности, в противном случае штраф составит 15 процентов. Посчитать штраф для каждой организации, средний штраф, общее количество денег, которые банк собирается получить дополнительно. Определить штраф бюджетных организаций.

Задание 11. Создать книгу Excel, названную своей фамилией и состоящую из двух листов. Первый лист назвать "Задача1", второй - "Задача2". Представить решения данных задач на соответствующих листах. Выполнить оформление таблиц. Файл положить в хранилище ДЗ своей группы. Срок выполнения работы - до 4 марта.
Обращаю внимание, что все расчеты должны производится средствами Excel. Во второй задаче следует использовать функции "Если" и "Суммесли".

воскресенье, 4 февраля 2018 г.

Социальная реклама

Уважаемые десятиклассники!

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

Требования к ролику: Видеоролик может быть снят с использованием любой техники (в том числе, на любительскую видеокамеру или камеру смартфона), смонтирован и озвучен, преобразован в формат avi, размещен на электронном ресурсе в сети Интернет (например, на видеохстинге YouTube).

Срок подачи заявок на участие в конкурсе - до 16 февраля, поэтому жду ваши отклики до 15 числа.

Задание 10*. Создать ролик, соответствующий требованиям, указанным выше. Прислать сообщение об участии в конкурсе до 15 февраля. Принести конкурсную работу на flash-носителе в формате avi до 20 февраля.

среда, 31 января 2018 г.

Питерская мышь - 2018

Уважаемые любители порисовать! Предлагаю вам снова принять участие в одном из конкурсов компьютерной графики - в городском конкурсе "Компьютерная мышь" (и очень надеюсь на повторение успеха прошлого года). Заявки на участие в нем и свои работы можно направить с 1 февраля по 20 марта 2018 года.

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

В этом году организаторы предложили такие темы для творческих работ:
  • 400 лет с момента открытия Иоганном Кеплером закона движения планет «У Земли, как и у нас с тобой, там, впереди, долгий, как жизнь, путь...»
  • 190 лет со дня рождения Жюля Габриэ́ля Верна. «Придет время, когда наука опередит фантазию.»
  • 200 лет со дня рождения Ивана Сергеевича Тургенева. «…в жизни, легкость и смелость – первое дело»
  • 80 лет со дня рождения Владимира Семёновича Высоцкого. «Счастье — это путешествие. Может быть, в душу другого человека, путешествие в мир писателя или поэта»
  • 185 лет с момента открытия в Санкт-Петербурге первой в России внутригородской почты «Люди недаром меня ожидают, им счастье нередко приходит со мной!»

Получить подробную информацию о конкурсе можно на странице сайта Центра Детского (Юношеского) Технического Творчества СПб

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

Для подачи заявки необходимо пройти регистрацию на сайте и оформить заявку. Сделать это следует до 20 марта!
Ниже представлен скрин страницы сайта при оформлении заявки.
В качестве полного наименования учебного заведения следует указать - ГБОУ СОШ№603 Фрунзенского района Санкт-Петербурга. 

Прежде чем подать заявку, прошу оповестить меня о своем желании принять участие в конкурсе)