МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное
образовательное учреждение высшего образования
«Сыктывкарский государственный университет имени Питирима Сорокина»
КОЛЛЕДЖ ЭКОНОМИКИ, ПРАВА И ИНФОРМАТИКИ
ОТЧЕТ
о прохождении учебной практике
по ПМ «Разработка программных модулей программного обеспечения
для компьютерных систем»
студента 1 курса группы № 16
специальности 09.02.03 Программирование в компьютерных системах Иевлевой Кристины Евгеньевны Место практики: «СГУ им. Питирима Сорокина » (г. Сыктывкар, Октябрьский проспект, 55)
Сроки практики: с 19.01.2017 по 27.04.2017 года
Руководитель практики от университета: Квочкин Д.О
Дата защиты отчета « ____ » _______________2017 г.
Оценка _______________
Подпись руководителя____________________
Сыктывкар 2017
СОДЕРЖАНИЕ
Введение 3
Раздел 1 Программирование на языке C 4
Подраздел 1.2 Ввод и вывод данных, оператор присваивания 4
Подраздел 1.3 Целые числа 6
Подраздел 1.4 Условный оператор 10
Подраздел 1.5 Цикл с параметром 13
Подраздел 1.6 Цикл с условием 16
Подраздел 1.7 Последовательности 18
Раздел 2 Программирование на языке C++ 21
Подраздел 2.2 Переменные константы 21
Подраздел 2.3 Функции 22
Раздел 3 Программирование на языке Delphi 23
Подраздел 3.1 Первая программа в Lazarus 24
Подраздел 3.2 Полезная программа 25
Подраздел 3.3 Консольные приложения среды Lazarus 26
Подраздел 3.4 Работа с комплексными числами 27
Подраздел 3.5 График функции 29
Раздел 4 Программирование на языке Python 33
Подраздел 4.1 Ввод и вывод данных 33
Подраздел 4.2 Условия 36
Подраздел 4.3 Вычисления 39
Заключение 43
Список использованной литературы 44
Введение
Учебная практика была пройдена в период с 19 января по 27 апреля 2017 года под руководством преподавателя колледжа экономики, права и информатики Квочкина Дмитрия Олеговича.
Цель учебной практики: Формирование основных профессиональных умений, навыков, опыта работы с программным обеспечения для компьютерных систем и интеграции программных модулей.
Задачи практики:
1.Закрепление и углубление теоретических знаний, полученных студентами в процессе изучения «Системное программирование» , «Прикладное программирование» 2. Выработка творческого, исследовательского подхода к профессиональной деятельности. 3. Изучены языки программирования : C,СС++,Delphi, Python. 4. Сбор материалов, необходимых для составления отчета о прохождения.
1.Программирование на языке C
Разработка и программирование в среде разработке DevCpp – ide с компилятором TDM GCC
1.2 Ввод и вывод данных , оператор присваивания
Задача 1 Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c).
Листинг задачи 1
#include int main() {double a,b,c,V,S; printf("\n vvestirebro a = "); scanf("%lf", &a); printf("\n vvestirebro b = "); scanf("%lf", &b); printf("\n vvestirebro c = "); scanf("%lf", &c); V=a*b*c; printf("Ob'em = %5.4f" ,V); S=2*(a*b+b*c+a*c); printf("Ploshad = %5.4f" ,S); return 0; }
Рисунок 1. Результат работы программы к задаче №1
Комментарий к задаче 1 Объявляем 5 переменных из которых a,b,c- длина ребер V- объем параллелепипеда , S – площадь параллелепипеда. Запрашиваем у пользователя длину ребер. Перемножаем введенные значения и помешаем полученный результат в переменную V. По формуле приведенной в условии задаче вычисляем площадь и помешаем полученный результат в переменную S. Выводим полученные значения на экран.
Задача 2: Даны два ненулевых числа. Найти сумму, разность, произведение и частное их квадратов.
Листингзадачи 2:
#include int main(void) { float a, b; printf("a:"); scanf ("%f", &a); printf("b:"); scanf ("%f", &b); printf("%f\n",a*a+b*b); printf("%f\n",a*a-b*b); printf("%f\n",a*a*b*b); printf("%f\n",(a*a)/(b*b)); return 0; }
Рисунок 2. Результат работы программы к задаче №2. Комментарий к задаче 2. Объявляем 2 переменных a и b.Запрашиваю значения этих переменных у пользователя. Далее выполняются операции описанные в условиях задачи и выводятся их результаты на экран.
1.3 Целые числа
Задача 1: Дано трехзначное число. Вывести вначале его последнюю цифру (единицы), а затем — его среднюю цифру (десятки).
Листинг задачи 1:
#include int main(void) { int A; printf("A:"); scanf ("%i", &A); printf("%i%i\n",A%10,(A%100)/10); return 0; }
Рисунок 3. Результат работы программы к задаче №1.
Комментарий к задаче 1. Объявляем переменную А. Затем запрашиваем у пользователя значение переменной А. Потом выводим результат на экран.
Задача 2: Дано целое число, большее 999. Используя одну операцию деления нацело и одну операцию взятия остатка от деления, найти цифру, соответствующую разряду тысяч в записи этого числа. Листинг задачи 2:
#include #include int main() {int a,b,c,d,S; while (1){ printf("\n vvesti chislo a = "); scanf("%d", &a); if (a>999){ break; } printf ("ohibka"); } c=(a/1000%10); printf("Cifra r'ada tisyach = %d\n" ,c); return 0;
16.}
Рисунок 4. Результат работы программы к задаче №2 Коментарий к задаче 2 Запрашиваем у пользователя на ввод число большее чем 999 , если пользователь вводит меньшее число , программа выдает ошибку. После успешного ввода числа больше 999 , программа записываает это число в переменную а. Чтобы отделить цифру соответсвующую разряду тысяч , делим полученное число на 1000 , берем целую часть и остаток от деления на 10 . Полученный результат пприсваиваем переменной с. Выводим полученый результат на экран. 1.4 Условный оператор
Задача 1: Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
Листингзадачи 1:
#include int main(void) { float a, b; printf("A:"); scanf ("%f", &a); printf("B:"); scanf ("%f", &b); if (a!=b) a=b=a+b; else a=b=0; printf("a: %f\n b: %f\n",a, b); return 0; }
Рисунок 5. Результат работы программы к задаче №1.
Комментарий к задаче 1. Объявляем 2 переменные А и В. Запрашиваем у пользователя значения переменных. Если они равны, то присваиваем им нулевые значения, а если их значения не равны, то присвоить каждой переменной сумму этих значений. Выводим результат на экран.
Задача 2: Даны два числа. Вывести большее из них. Листинг задачи 2
#include #include int main() { int a,b; printf("\n vvesti chislo a = "); scanf("%d", &a); printf("\n vvesti chislo b = "); scanf("%d", &b); if (a>b) { printf("%d" ,a); } if (a { printf("%d",b); } if (a==b) { printf("Oni ravni \n" ) ; } return 0; }
Рисунок 6. Результат работы программы к задаче №2 Комментарий к задаче 7 Программа запрашивает у пользователя на ввод два числа и помещает их в переменные а и b. Спомьщью условного оператора if программа сравнивает два числа. В первом случае: если b меньше a то на экран выводится цифра помещенная в переменную a. Во втором случае: если а меньше b то на экран выводится цифра помещенная в переменную b. В третьем случае: если a равна b то на экран выводится сообщение «они равны».
1.5 Цикл с параметром
Задача 1 Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1.2, 1.4, …, 2 кг конфет. Листинг задачи 1
#include int main() { float a; printf("\n vvesti cenu konfet = "); scanf("%f", &a); float b; for(b=1,2; 2.1>b; b+=0.2) printf("%.1f kg konfet = %.2f Rub. \n",b,b*a); return 0; }
Рисунок 7 Результат работы программы к задаче №1
Комментарий к задаче 1 Программа запрашивает у пользователя на ввод число и помещает в переменную а. Длаее идет цикл с параметром с шагом 0,2 от 1 до 2 включительно. После чего прогрмма выводит на экран каждое полученное число по шагам цикла.
Задача 2: Дано целое число N (> 0). Найти произведение 1.1 · 1.2 · 1.3 · …
Листинг задачи 2
#include <stdio.h> int main() { float a,c=1.0; while (1){ printf("\n vvesti N = "); scanf("%f", &a); if (a>0){ break; } printf("vvedite chislo bolshe 0"); } float b; for(b=1.1; a>b; b+=0.1){ c*=b; } printf("%f \n",c); return 0; }
Рисунок 8. Результат работы программы к задаче №2
Комментарий к задаче 2 Программа запрашивает у пльзователя число N которое больше
0 . С помошью условного оператора if программа проверяет ввел ли пользователь число
большее чем 0 . Если нет , то на экране появляется сообьщение о том , что введенное
число должно быть больше 0 . Если пользователь ввел правильное число с помощью
цикла с параметром с шагом 0,1 программа перемнажает каждуй шаг на предидущий ,
помещая результат в переменную с . После чего результат выводиться на экран.
1.6 Цикл с условием
Задача 1: Дано целое число N (> 0), являющееся некоторой степенью числа 2: N = 2K. Найти целое число K — показатель этой степени.
Листинг задачи 1:
#include int main(void) { int n; printf("N:"); scanf ("%i", &n); int k=0; while (n>=2){ ++k; n/=2; } printf("K: %i\n",k); return 0; }
Рисунок 9. Результат работы программы к задаче №1.
Комментарий к задаче 1. Объявляем переменную n, запрашиваем у пользователя значение переменной n. Объявление переменой к(счётчик). Далее идёт цикл с предусловием, который высчитывает степень двойки. Выводим результат на экран.
Задача 2: Дано целое число N (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 2 + … + K будет меньше или равна N, и саму эту сумму.
Листинг задачи 2
#include int main(void) { int n; printf("vvesti N:"); scanf ("%d", &n); int k=0, b=0;
while (b+k+1<=n){ k++; b+=k; } printf("naibolshee K= %d \n Summa= %d",k,b); return 0; }
Рисунок 10. Результат работы программы к задаче №2
Комментарий к задаче 2 Программа запрашивает у пользователя на ввод число и помещает в переменную n , далее вводятся две переменные k и b. Цикл while проверяет истинно ли выражение b+k+i<=n , если выражение верно , то k увеличивается на 1 , а b принимает значение b+k. Как только выражение из цикла становиться ложным на экран выводиться конечный результат.
1.7 Последовательности Задача 1: Дано целое число N и набор из N целых чисел. Если в наборе имеются положительные числа, то вывести True; в противном случае вывести False. Листинг задачи 1:
#include int main(void) { int i,n,r,b=0; printf("N:"); scanf("%i", &n); for (i=1; i<=n; ++i){ printf("%i:",i); scanf("%i", &r); if (r>0) b=1; } printf("%s\n",b?"True":"False"); return 0; }
Рисунок 11. Результат работы программы к задаче №1.
Комментарий к задаче 2. Объявляем переменные i(счётчик), n(количество чисел в наборе), r(текущее число набора), b(показатель наличия положительных чисел в наборе). Запрашиваем значение переменной n у пользователя. Далее идёт цикл, в котором мы запрашиваем текущее число набора, и проверяем больше ли оно 0. После этого Выводим True или False при наличии положительных чисел в наборе. Задача 2 Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести количество чисел в наборе.
Листингзадачи2
#include int main() { int n,nn,i=0; double mas[100]; for( i=0 ; i<100 ; i++) { printf("vvedite chislo: "); scanf("%d",&nn); mas[i]=nn; if (nn==0) break; } printf(" \n vsego chisel %d\n" ,i); return 0; }
Рисунок 11. Результат работы программы к задаче №2
Комментарий к задаче 15 Программа запрашивает у пользователя на ввод числа , объявляется массив , в массив заносяться числа вводимые пользователем . Оператор if проверяет введеные числа , как только пользователь ввел 0 , заполнение массива прекращается , программа выводит количесвто чисел , последнее число счетчика
2. Программирование на языке С++
В ходе изучения языка программирования C++, была использована среда разработки DevCpp – IDE с компилятором TDM - GCC. Devcpp - свободная интегрированная среда разработки приложений для языков программирования C/C++. GCC - GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU.
2.1 Цикл for
Задача 1 Напишем программу, которая будет считать сумму всех чисел от 1 до 1000.
Листингзадачи 1 1. #include 2. using namespace std; 3. 4. int main() 5. { 6. int i; 7. int sum = 0; 8. setlocale(0, ""); 9. for (i = 1; i <= 1000; i++) 10. { 11. sum = sum + i; 12. } 13. cout « "Сумма чисел от 1 до 1000 = " « sum « endl; 14. return 0; 15. }
Рисунок 12. Результат работы программы к задаче №1
2.2 Функции в С++
Задача 20 Создать программу которая выводит пользователю сообщения об ошибке в разных местах программы, если он ввел неверное значение.
Листинг
задачи 20 1 . #include 2. #include 3. using namespace std; 4. void check_pass (string password) 5. { 6. string valid_pass = "qwerty123"; 7. if (password == valid_pass) { 8. cout « "Access is allowed." « endl; 9. } else { 10. cout « "Incorrect password!" « endl; 11. } 12. } 13. int main() 14. { 15. string user_pass; 16. cout « "Enter password: "; 17. getline (cin, user_pass); 18. check_pass (user_pass); 19. return 0; 20. }
Рисунок 13 и 14. Результат работы программы к задаче №2
3.Программирование на языке Delphi
3.1 Первая программа в Lazarus
Листинг первой программы в Lazarus
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin Button1.Caption:='Ура!_заработало!' ; end; end.
Рисунок 15. Результат работы первой программы в Lazarus
Комментарий к первой программе в Lazarus При нажатии на кнопку программа должна выводить сообщение Ура! заработало! В этой кнопке. Для этого в форму добовляем кнопку . В свойствах ,на параметр при нажатии , меняем значение кнопки на Ура! заработало!
3.2 Полезная программа
Листинг полезной программы
unit unit2; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure Button1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); var pud, funt : integer; kg: real; begin pud:=StrToInt ( Edit1.Text ); funt:=StrToInt ( Edit2.Text ) ; kg:=pud*16.38+funt*16.38/40 ; Label4.Caption:='В_килограммах:_'+FloatToStr( kg ) ; end; end.
Рисунок 16. Результат работы полезной прграммы
Комментарий к полезной программе Для выполнения данной задачи на поле форм добовляем названия , поля для ввода и кнопку. По нажатиию на кнопку программа конвектирует введенные значяения в поля для ввода из едениц измерения: пуды и фунты в киллограмы.
3.3 Консольное приложение среды Lazarus
Листинг консольного приложения в среде Lazarus
program project1; {$mode objfpc}{$H+} uses Classes , SysUtils { you can add units after this }; var gradus, minuta :integer ; radian : real ; begin write ('gradus='); readln(gradus); write ('minuta='); readln(minuta); radian:=gradus*pi/180+minuta*pi/(180*60); writeln('radian=' ,radian); end.
Рисунок 17. Результат работы консольного приложения среды Lazarus
Комментарий к консольному приложению в среде LazarusПрограмма запрашивает у
Пользователя ввести градусы и минуты , после чего по формуле gradus*pi/180+minuta*pi
/(180*60) вычисляет радиан и выводит на экран результат.
Работа с комплексными числами
Листинг программы комплексные числа
unit Unit1 ; {$mode objfpc}{$H+} interface uses Classes , SysUtils , LResources , Forms , Controls , Graphics , Dialogs , StdCtrls ; type { TForm1 } TForm1 = class (TForm) Button1 : TButton ; Edit1 : TEdit ; Edit2 : TEdit ; Label1 : TLabel ; Label2 : TLabel ; Label3 : TLabel ; Memo1 : TMemo; procedure Button1Click ( Sender : TObject ) ; procedure FormCreate(Sender: TObject); procedure Memo1Change(Sender: TObject); private { private declarations } public { public declarations } end; type TComplex = class private x : real ; y : real ; public constructor Create ; function Modul() : real ; function Argument() : real ; function ComplexToStr() : String ; end; var Form1 : TForm1 ; chislo : TComplex ; implementation constructor TComplex. Create ; begin x :=0; y :=0; inherited Create ; end; function TComplex.Modul () : real ; begin modul:=sqrt( x*x+y*y ) ; end; function TComplex.Argument () : real ; begin argument:=arctan( y/x )*180/pi ; end; function TComplex.ComplexToStr() : String ; begin if y>=0 then ComplexToStr:=FloatToStrF (x,ffFixed ,5 ,2)+ '+' + FloatTostrF (y , ffFixed ,5 ,2)+ ' i ' else ComplexToStr :=FloatTostrF (x , ffFixed ,5 ,2)+ FloatTostrF (y , ffFixed ,5 ,2)+ ' i ' end; procedure TForm1.Button1Click ( Sender: TObject ) ; Var Str1 : String ; begin chislo:=TComplex.Create ; chislo.x:=StrToFloat ( Edit1.Text ) ; chislo.y:=StrToFloat ( Edit2.Text ) ; Str1 := 'Kompleksnoe_chislo_'+chislo.ComplexToStr () ; Memo1.Lines.Add( Str1 ) ; Str1:= 'Modul_chisla_'+ FloatToStrF ( chislo.Modul () , ffFixed , 5 , 2 ) ; Memo1.Lines.Add( Str1 ) ; Str1:= 'Argument_chisla_'+ FloatToStrF( chislo.Argument () , ffFixed , 5 , 2 ) ; Memo1.Lines.Add( Str1 ) ; chislo.Free ; end; procedure TForm1.FormCreate(Sender: TObject); begin Memo1.text :=''; end; procedure TForm1.Memo1Change(Sender: TObject); begin end; initialization {$I unit1.lrs} end.
Рисунок 16. Результат работы программы комплексные числа
Комментарий к программе комплексные числа Программа запрашивает у пользователя 2 числа , после чего выводить комплексное этих чисел, модуль числа и аргумент.
4. Программирование на языке Python.
4.1. Ввод и вывод данных
Задача 1: Напишите программу, которая считывает длины двух катетов в прямоугольном треугольнике и выводит его площадь. Каждое число записано в отдельной строке.
Листинг задачи 1:
a = int(input())
b = int(input())
c = int(input())
s = a + b + c
print(s)
Рисунок 17. Результат работы программы к задаче 1
Комментарий к задаче 1 Программа запрашивает у пользователя на ввод три числа , затем выводит на экран сумму всех трех чисел.
Задача 2:
n школьников делят k яблок поровну, неделящийся остаток остается в корзинке. Сколько яблок достанется каждому школьнику? Сколько яблок останется в корзинке? Программа получает на вход числа n и k и должна вывести искомое количество яблок (два числа).
Листинг задачи 2:
# Число n можно считать так: n = int(input()) k = int(input()) b = int(k/n) s = int(k%n) # Выводите результат через print()
# Пример на деление, вычисление частного и остатка: print(b) print(s)
Рисунок 18. Результат работы программы к задаче №2. Задача 3 Обувная фабрика собирается начать выпуск элитной модели ботинок. Дырочки для шнуровки будут расположены в два ряда, расстояние между рядами равно aa, а расстояние между дырочками в ряду bb. Количество дырочек в каждом ряду равно NN. Шнуровка должна происходить элитным способом “наверх, по горизонтали в другой ряд, наверх, по горизонтали и т.д.” (см. рисунок). Кроме того, чтобы шнурки можно было завязать элитным бантиком, длина свободного конца шнурка должна быть ll. Какова должна быть длина шнурка для этих ботинок?
Листинг задачи 3
a = int(input()) b = int(input()) l = int(input()) N = int(input()) print((l*2)+(2*(b*(N-1)))+(2*(a*N)-a))
Рисунок 19. Результат работы программы к задаче 3
Комментарий к задаче 21 Программа запрашивает у пользователя на ввод 4 числа. Далее с помощью формулы (2*(N-1)*(a+b)+a+l*2) находит длину шнурков , значение помещается в переменную dlina и выводится на экран.
4.2Условия Задача 1 Даны два целых числа. Выведите значение наименьшего из них.
Листинг задачи 1
n = int(input()) b = int(input()) if n < b: print(n) if n==b: print(n) if n > b: print(b)
Рисунок 20. Результат работы программы к задаче 1
Комментарий к задаче 1 Программа запрашивает у пользователя на ввод 2 числа. С
помощю условного оператора if сравнивает эти числа . Если n Если n==b , программа выводит n. Если n>b , программа выводит b.
4.3 Вычисления
Задача 25 Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с нулевого километра МКАД и едет со скоростью v километров в час. На какой отметке он остановится через t часов? Программа получает на вход значение v и t. Если v>0v>0, то Вася движется в положительном направлении по МКАД, если же значение v<0v<0, то в отрицательном. Программа должна вывести целое число от 0 до 108 — номер отметки, на которой остановится Вася.
Листинг задачи 25
v = int(input()) t = int(input()) print((v*t)%109)
Рисунок 21. Результат работы программы к задаче 1
Комментарий к задаче 21 Программа запрашивает у пользователя на ввод 2 числа , в переменную v помещается введенная скорость , а в переменную t – введеное время . Следующим шагом скорость умножается на время , береться остаток от деления на 109 и выводится га экран.
Задача 2 Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползет до вершины шеста? Программа получает на вход натуральные числа h, a, b.Программа должна вывести одно натуральное число. Гарантируется, что a>b.
Листинг задачи 2
from math import ceil h = int(input()) a = int(input()) b = int(input()) m = h-a v = a-b y = m/v n = ceil(y) print(n+1)
Рисунок 22. Результат работы программы к задаче 2
Комментарий к задаче 2 Для выполнения данной задачи потребовалось воспользоваться библеотекой math. Программа запрашивает у пользователя на ввод 3 числа. В переменную m помещается результат разности переменных h и a расстояние которое нужно пройти улитки , кроме последнего дня. В переменную v помещается разность переменных a и b – расстояние кторое улитка проползает за 1 день , при условии что сползает назад.. Далее в переменную y помещается результат деления m на v - количество дней , которых улитка будет ползти и сползать обратно. В переменную n помещается округленное значение переменной у. Прибовляется еще один вычтенный ранее день к переменной n и выводится на экран.
Заключение
На основании пройденной учебной практики можно сделать следующие выводы
Получен опыт отладки программного кода. Изучены инструментальные средства программирования : Dev-Cpp , Lazarus, интерпретатор Python 3.7 Получен опыт разработки кода программного продукта на основе готовой спецификации на уровне модуля Получен практический опыт разработки алгоритмов и их реализация на языках программирования c , c++ , Delphi , Python. Получен опыт проведения тестирования программного модуля по определенному сценарию.
Общее впечатление от пройденной учебной практики - положительное.
Программа практики выполнена в полном объеме, поэтому цель и задачи практики считаю достигнутой, а практику успешно пройденной.
Список использованной литературы
Шилдт, Герберт С++ за 24 часа , 4-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2006. – 800 с. Питонтьютор [Электронный ресурс].- Режим доступа.- URL: http://pythontutor.ru/ (дата обращения: 22.04.2017). Загл. с экрана Алексеев Е. Р. Free Pascal и Lazarus: Учебник по программированию / Е.Р. Алексеев, О. В. Чеснокова, Т. В. Кучер – М.: ALT Linux; Издательский дом ДМК-пресс, 2010. – 440 с. Подбельский В. В., Фомин С.С. Программирование на языке Си: Учеб. пособие. – 2-е доп. изд. – М.: Финансы и статистика, 2004. – 600 с. Мансуров К.Т. Основы программирования в среде Lazarus, 2010. – 772 с.: Семакин И. Г Основы программирования: Учебник для сред. проф. Образования / И.Г. Семакин, А. П. Шестаков. – 2-е изд., стер. – М.: Издательский центр «Академия», 2003. – 432 с.
100> |