2017 ОСНОВЫ ПРОГРАММИРОВАНИЯ 2 КУРС колледж JavaScript + Lazarus + Python ЛЕК=24шт Л/Р=18шт ПР=6шт ТУТ СМОТРИМ СВОЙ РЕЙТИНГ: goo.gl/UmkBZg ПРОГРАММЫ С ЛЕКЦИЙ: goo.gl/5PKevK файл HELPME - текущие подсказочки - на ЛабРаб: goo.gl/TvmKZq учебник по LAzarus: https://pCoding.ru/pdf/Lazarus.pdf программа для ТЕСТИРОВАНИЯ: https://pCoding.ru/download/TesT.rar пример Игры на Lazarus (игра 11 монет): https://pCoding.ru/download/game11.rar языки скачать тут: Lazarus http://www.lazarus-ide.org/ Python https://www.python.org/ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ЗАДАНИЯ ДЛЯ ЛАБОРАТОРНЫХ РАБОТ: * тема 1 Javascript л/р 1 - структурные операторы: ветвления и цикла - программы без обработки событий 1. на вход подаётся число, на выход ответ: чётное/не чётное 2. на вход подаётся число, на выход сумма цифр числа 3. на вход подаются три числа, на выход максимальное из них л/р 2 - организация подпрограмм - программы с обработкой событий - использовать поля ввода и кнопки - в поле/поля ввода заносятся вручную данные, по нажатию на экранную клавишу выполняется функция, ответ выводится в поле вывода, реализовать задания из л/р 1: 1. на вход подаётся число, на выход ответ: чётное/не чётное 2. на вход подаётся число, на выход сумма цифр числа 3. на вход подаются три числа, на выход максимальное из них л/р 3 - модульное программирование - подпрограммы вынести в отдельный файл - модуль *.js - в модуле реализовать подпрограммы перевода 10-го числа в двоичную систему счисления и обратно - оформить программу с полем ввода и вывода и кнопками "из 10-й в 2-ую" "из 2-ой в 10-ую" и подключением модуля с подпрограммами л/р 4 - реализовать игру угадай число: компьютер загадывает трёхзначное число, человек угадывает его последовательностью ходов, каждый ход - это ввод своего числа, в ответ компьютер отвечает больше/меньше/угадал, в начале игры Игроку присуждается 1000$, за каждый неправильный ход вычитается 100$. * тема 2 Lazarus - учебник: https://pCoding.ru/pdf/Lazarus.pdf л/р 5 - Событийное программирование - пишем хранитель экрана с функциями: 1. фон полупрозрачный на весь экран 2. клавиши выключения Alt+F4 отключены 3. отключаем по Esc 4. по экрану двигается текущее время, ударяясь о границы экрана и отражаясь 5. пользователь может менять скорость и размер цифр времени клавишами (Ctrl+вращение колёсика мыши или другими по своему усмотрению) л/р 6 - События мыши - пишем калькулятор - из учебника глава 2.1 л/р 7 - События клавиатуры - пишем калькулятор - из учебника глава 2.2-2.4 * тема 3 Python л/р 8 - структурные операторы - работаем с модулем Turtle - пишем программу: на вход подаётся целое число, на выходе черепашка рисует цифры этого числа по образцу как цифра индекса на почтовом конверте (цифры оформлены в виде функций) - пишем программу, которая рисует черепашкой спираль (с углами поворота в 90 градусов), размер задаёт пользователь л/р 9 - модули Python - выносим функции рисования цифр черепашкой в отдельный модуль - пишем программу по управлению черепашкой - нужно за минимальное количество команд обеспечить такой рисунок: 10 параллельных линий на экране - пишем программу на Python по парсингу ТВ-программы с сайта tv.yandex.ru - пишем на Lazarus интерфейс пользователя: пользователь может выбрать название канала, команда с Лазаруса передаётся в Пайтон, там парсинг происходит, результаты отображаются в программе на Лазарусе л/р 10 - методы работы со списками и строками Дан сайт: http://findept.ru/valyuta/perm/ 1) Написать программу money.py на Python - которая может с данного этого сайта распарсить курсы валют в разных банках и сохранить данные в файле output.txt Формат сохранения такой - в каждой строке должно быть шесть полей: номер по порядку || название банка || доллар-покупка || доллар-продажа || евро-покупка || евро-продажа например так: 1 Альфа-банк 58.70 59.70 68.00 69.20 символы разделители между полями используйте TAB ('\t'), но не пробел, так как бывают названия банков с пробелом (Абсолю Банк и т.п.) 2) написать программу на Lazarus - это будет интерфейс пользователя, для запуска программы money.py, на форме есть: RadioGroup - там отображаются названия банков (сделайте 5-10 штук) Memo - туда выводится результат для выбранного банка в формате построчно: название банка - Альфа-банк доллар-покупка - 58.70 доллар-продажа - 59.70 евро-покупка - 68.00 евро-продажа - 69.20 л/р 11 - подводим итоги задание по аналогии с предыдущей л/р Дан сайт: https://www.championat.com/football/_russiapl.html Там турнирная таблица https://www.championat.com/football/_russiapl/2200/table/all.html 1) Написать программу fb.py на Python - которая парсит таблицу, забирает все столбцы за все команды 2) написать программу на Lazarus - это будет интерфейс пользователя, для запуска программы fb.py - на форме есть органы управления, пользователь может выбрать место в рейтинге, а программа отображает название команды с этого места и все её характеристики: игры, победы и т.д. л/р 12 - подводим итоги 2) написать программу на Lazarus по формированию Html странички с таблицей данных по Турнирной таблице чемпионата - это будет интерфейс пользователя, для запуска программы fbToHtml.py - на форме есть органы управления, пользователь может выбрать цвета фона страницы, заголовка таблицы и ячеек таблицы а программа парсит сайт и формирует Html страничку с таблицей всех данных (9 столбцов) по Турнирной таблице чемпионата с параметрами цвета, заданными пользователем = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = требования по Дисциплине: посещать лекции, так как без них не понять что и как делать до лабораторки: дома тренироваться самому по примерам с лекции на лабораторке: приходить на лабораторки, выполнять задания поиск задания к лабораторке в этом файле так: Ctrl+F ЛР_01 или ЛР_02 и т.д. ==================================================== итоговая оценка за дисциплину: - складывается по итогам работы на лабораторках ЭКЗАМЕН в форме собеседования с решением практических заданий (только для тех, кого не удовлетворила оценка выше) --- ТЕМЫ, выносимые на ЭКЗАМЕН - работа с: ... тут уточню по ходу обучения ... - структурные операторы (ветвления, цикла) - структуры для хранения данных (массивы, строки, списки) - работа с файлами - подпрограммы и модули * примеры заданий: - текстовые файлы - прочитать, записать, добавить - может одна строка или несколько - динамические массивы - сгенерировать массив случайных чисел, добавить элемент, найти мин/макс, выбрать из массива по условию - строки - парсинг строк: пользователь вводит Комягина Дарья Вячеславовна - программа возвращает Комягина Д.В. - подпрограммы - функции и процедуры, какая разница между ними, аргументы, примеры задания: в функцию передать строку, а вернуть количество гласных букв, передать целое число, а вернуть количество четных цифр в нём ==================================================== *********** это пояснить на 3 лекции *********** // самостоятельное задание: // сделать function binToDecSdvig(bin) с помощью while по step2 *********** это пояснить на 3 лекции *********** -------------------------------------------------------------------------- *** ЛАБОРАТОРКИ *** ЛР_01 написать Программу JS - перевод десятичного числа в двоичное ЛР_02 написать Программу JS - перевод двоичного числа в десятичное - проверки по возрасту switch (Призывник) нарисовать Алгоритмы: - сумма чисел от 0 до 100 - перевод десятичного числа в двоичное - перевод двоичного числа в десятичное Техническое задание: 1) Построить пирамиду 2) Проверить палиндром 3) Перевести число (десятичное<-->двоичное) 4) Игра: угадай число 5) Слияние массивов (упорядоченных) *** ЛЕКЦИИ *** -------------------------------------------------------------------------- лекция 01 Технологии программирования вопросы: языки и среды компиляторы и трансляторы рейтинг языков программирования http://www.tiobe.com/tiobe-index/ лекция 0_ Поиск вопросы: VBA Двоичный поиск программы с лекции №1 |||||||||||||||||||||||||||||||||||| 01.html Моя первая программа |||||||||||||||||||||||||||||||||||| 02.html Моя первая программа |||||||||||||||||||||||||||||||||||| 03.html Моя первая программа |||||||||||||||||||||||||||||||||||| 04.html Моя первая программа |||||||||||||||||||||||||||||||||||| script.js function Otvet(x,y,z) { if ((x>y) && (x>z)) result = x; if ((y>x) && (y>z)) result = y; if ((z>y) && (z>x)) result = z; return result; } function summa(x,y,z) { return x+y+z; } |||||||||||||||||||||||||||||||||||| 05.html Моя первая программа    


|||||||||||||||||||||||||||||||||||| uses Crt; function decToAll(dec: integer; osn: byte): integer; var bin, step: integer; begin bin := 0; step := 1; while (dec>0) do begin bin := bin + (dec mod osn) * step; dec := dec div osn; step := step * 10; end; result := bin; end; var dec: integer; begin writeln( decToAll(9,8) ); // 1 1 1 1 // 3 2 1 0 // 8 4 2 1 // 1 0 1 0 end. |||||||||||||||||||||||||||||||||||| function decToBin(dec) { while () { ost = x % y ; cel = Math.floor(x/y); } return bin; } |||||||||||||||||||||||||||||||||||| лекция 02 Структурные операторы вопросы: Лекция 04 - Функции Lazarus rocedure TForm1.FormCreate(Sender: TObject); var numRow, numCol: integer; clr: TColor; begin for numRow:=1 to StringGrid1.RowCount-1 do for numCol:=1 to StringGrid1.ColCount-1 do StringGrid1.Cells[numCol,numRow]:=IntToStr(numRow*numCol); Chart1LineSeries1.Clear; clr:=RGBToColor(255,0,0); //Chart1LineSeries1.SeriesColor:=clr; Chart1LineSeries2.Clear; clr:=RGBToColor(255,255,0); //Chart1LineSeries2.SeriesColor:=clr; for numCol:=1 to StringGrid1.ColCount-1 do Chart1LineSeries1.Add(StrToFloat(StringGrid1.Cells[numCol,1]),'',clr); for numCol:=StringGrid1.ColCount-1 downto 1 do Chart1LineSeries2.Add(StrToFloat(StringGrid1.Cells[numCol,1]),'',clr); end; ЛабРаб Парсинг Python + Lazarus (09.11.2017) пример программы: import requests url = 'https://tv.yandex.ru/50/channels/599' txt = requests.get(url).text strS = ['', ''] file = open('output.txt', 'w') pos = 0 while txt.find(strS[0],pos)>0: list = [] for i in range(2): posS = txt.find(strS[i],pos) + len(strS[i]) posF = txt.find(strE[i],posS) list.append(txt[posS:posF]) pos = posF line = list[0] + '\t' + list[1] file.write(line + '\n') file.close() #input() Техническое задание (для самостоятельного исполнения) Дан сайт: http://findept.ru/valyuta/perm/ 1) Написать программу money.py на Python - которая может с данного этого сайта распарсить курсы валют в разных банках и сохранить данные в файле output.txt Формат сохранения такой - в каждой строке должно быть шесть полей: номер по порядку || название банка || доллар-покупка || доллар-продажа || евро-покупка || евро-продажа например так: 1 Альфа-банк 58.70 59.70 68.00 69.20 символы разделители между полями используйте TAB ('\t'), но не пробел, так как бывают названия банков с пробелом (Абсолю Банк и т.п.) 2) написать программу на Lazarus - это будет интерфейс пользователя, для запуска программы money.py на форме есть RadioGroup - там отображаются названия банков (сделайте 5-10 штук) Memo - туда выводится результат для выбранного банка в формате построчно: название банка - Альфа-банк доллар-покупка - 58.70 доллар-продажа - 59.70 евро-покупка - 68.00 евро-продажа - 69.20 ЛабРаб Парсинг Python + Lazarus (16.11.2017) работа с цветом в Lazarus function getR(rgb: TColor): byte; begin result := (rgb and $000000ff) shr 0; end; function getG(rgb: TColor): byte; begin result := (rgb and $0000ff00) shr 8; end; function getB(rgb: TColor): byte; begin result := (rgb and $00ff0000) shr 16; end; procedure TForm1.Panel1Click(Sender: TObject); var R, G, B: byte; rgb: TColor; begin if ColorDialog1.Execute then begin rgb:=ColorDialog1.Color; Panel1.Color:=rgb; Edit1.Text:='#' + IntToHex(getR(rgb),2) + IntToHex(getG(rgb),2) + IntToHex(getB(rgb),2); end; end; Техническое задание (для самостоятельного исполнения) Дан сайт: https://www.championat.com/football/_russiapl.html там турнирная таблица https://www.championat.com/football/_russiapl/2200/table/all.html 1) Написать программу fb.py на Python - которая может с данного этого сайта распарсить курсы валют в разных банках и сохранить данные в файле output.txt Формат сохранения такой - в каждой строке должно быть шесть полей: номер по порядку || название банка || доллар-покупка || доллар-продажа || евро-покупка || евро-продажа например так: 1 Альфа-банк 58.70 59.70 68.00 69.20 символы разделители между полями используйте TAB ('\t'), но не пробел, так как бывают названия банков с пробелом (Абсолю Банк и т.п.) 2) написать программу на Lazarus - это будет интерфейс пользователя, для запуска программы money.py на форме есть RadioGroup - там отображаются названия банков (сделайте 5-10 штук) Memo - туда выводится результат для выбранного банка в формате построчно: название банка - Альфа-банк доллар-покупка - 58.70 доллар-продажа - 59.70 евро-покупка - 68.00 евро-продажа - 69.20