Главная страница

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


Скачать 1.12 Mb.
НазваниеОтчет о прохождении учебной практике по пм Разработка программных модулей программного обеспечения для компьютерных систем
АнкорРазработка программных модулей программного обеспечения
Дата13.08.2022
Размер1.12 Mb.
Формат файлаdocx
Имя файлаOtchet_Ievleva_Kristina.docx
ТипОтчет
#645117

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное

образовательное учреждение высшего образования

«Сыктывкарский государственный университет имени Питирима Сорокина»

КОЛЛЕДЖ ЭКОНОМИКИ, ПРАВА И ИНФОРМАТИКИ


ОТЧЕТ

о прохождении учебной практике

по ПМ «Разработка программных модулей программного обеспечения

для компьютерных систем»

студента 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 Даны длины ребер abc прямоугольного параллелепипеда. Найти его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c).

Листинг задачи 1

  1. #include

  2. int main()

  3. {double a,b,c,V,S;

  4. printf("\n vvestirebro a = ");

  5. scanf("%lf", &a);

  6. printf("\n vvestirebro b = ");

  7. scanf("%lf", &b);

  8. printf("\n vvestirebro c = ");

  9. scanf("%lf", &c);

  10. V=a*b*c;

  11. printf("Ob'em = %5.4f" ,V);

  12. S=2*(a*b+b*c+a*c);

  13. printf("Ploshad = %5.4f" ,S);

  14. return 0;

  15. }



Рисунок 1. Результат работы программы к задаче №1

Комментарий к задаче 1 Объявляем 5 переменных из которых a,b,c- длина ребер V- объем параллелепипеда , S – площадь параллелепипеда. Запрашиваем у пользователя длину ребер. Перемножаем введенные значения и помешаем полученный результат в переменную V. По формуле приведенной в условии задаче вычисляем площадь и помешаем полученный результат в переменную S. Выводим полученные значения на экран.

Задача 2: Даны два ненулевых числа. Найти сумму, разность, произведение и частное их квадратов.

Листингзадачи 2:

  1. #include

  2. int main(void)

  3. {

  4. float a, b;

  5. printf("a:");

  6. scanf ("%f", &a);

  7. printf("b:");

  8. scanf ("%f", &b);

  9. printf("%f\n",a*a+b*b);

  10. printf("%f\n",a*a-b*b);

  11. printf("%f\n",a*a*b*b);

  12. printf("%f\n",(a*a)/(b*b));

  13. return 0;

  14. }



Рисунок 2. Результат работы программы к задаче №2.
Комментарий к задаче 2. Объявляем 2 переменных a и b.Запрашиваю значения этих переменных у пользователя. Далее выполняются операции описанные в условиях задачи и выводятся их результаты на экран.

1.3 Целые числа

Задача 1: Дано трехзначное число. Вывести вначале его последнюю цифру (единицы), а затем — его среднюю цифру (десятки).

Листинг задачи 1:

  1. #include

  2. int main(void)

  3. {

  4. int A;

  5. printf("A:");

  6. scanf ("%i", &A);

  7. printf("%i%i\n",A%10,(A%100)/10);

  8. return 0;

  9. }



Рисунок 3. Результат работы программы к задаче №1.

Комментарий к задаче 1. Объявляем переменную А. Затем запрашиваем у пользователя значение переменной А. Потом выводим результат на экран.

Задача 2: Дано целое число, большее 999. Используя одну операцию деления нацело и одну операцию взятия остатка от деления, найти цифру, соответствующую разряду тысяч в записи этого числа.
Листинг задачи 2:

  1. #include

  2. #include

  3. int main()

  4. {int a,b,c,d,S;

  5. while (1){

  6. printf("\n vvesti chislo a = ");

  7. scanf("%d", &a);

  8. if (a>999){

  9. break;

  10. }

  11. printf ("ohibka");

  12. }

  13. c=(a/1000%10);

  14. printf("Cifra r'ada tisyach = %d\n" ,c);

  15. return 0;

16.}



Рисунок 4. Результат работы программы к задаче №2
Коментарий к задаче 2 Запрашиваем у пользователя на ввод число большее чем 999 , если пользователь вводит меньшее число , программа выдает ошибку. После успешного ввода числа больше 999 , программа записываает это число в переменную а. Чтобы отделить цифру соответсвующую разряду тысяч , делим полученное число на 1000 , берем целую часть и остаток от деления на 10 . Полученный результат пприсваиваем переменной с. Выводим полученый результат на экран.
1.4 Условный оператор

Задача 1: Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.

Листингзадачи 1:

  1. #include

  2. int main(void)

  3. {

  4. float a, b;

  5. printf("A:");

  6. scanf ("%f", &a);

  7. printf("B:");

  8. scanf ("%f", &b);

  9. if (a!=b) a=b=a+b;

  10. else a=b=0;

  11. printf("a: %f\n b: %f\n",a, b);

  12. return 0;

  13. }


Рисунок 5. Результат работы программы к задаче №1.



Комментарий к задаче 1. Объявляем 2 переменные А и В. Запрашиваем у пользователя значения переменных. Если они равны, то присваиваем им нулевые значения, а если их значения не равны, то присвоить каждой переменной сумму этих значений. Выводим результат на экран.

Задача 2: Даны два числа. Вывести большее из них.
Листинг задачи 2

  1. #include

  2. #include

  3. int main()

  4. {

  5. int a,b;

  6. printf("\n vvesti chislo a = ");

  7. scanf("%d", &a);

  8. printf("\n vvesti chislo b = ");

  9. scanf("%d", &b);

  10. if (a>b)

  11. {

  12. printf("%d" ,a);

  13. }

  14. if (a

  15. {

  16. printf("%d",b);

  17. }

  18. if (a==b)

  19. {

  20. printf("Oni ravni \n" ) ;

  21. }

  22. return 0;

  23. }





Рисунок 6. Результат работы программы к задаче №2
Комментарий к задаче 7 Программа запрашивает у пользователя на ввод два числа и помещает их в переменные а и b. Спомьщью условного оператора if программа сравнивает два числа. В первом случае: если b меньше a то на экран выводится цифра помещенная в переменную a. Во втором случае: если а меньше b то на экран выводится цифра помещенная в переменную b. В третьем случае: если a равна b то на экран выводится сообщение «они равны».

1.5 Цикл с параметром

Задача 1 Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1.2, 1.4, …, 2 кг конфет.
Листинг задачи 1

  1. #include

  2. int main()

  3. {

  4. float a;

  5. printf("\n vvesti cenu konfet = ");

  6. scanf("%f", &a);

  7. float b;

  8. for(b=1,2; 2.1>b; b+=0.2)

  9. printf("%.1f kg konfet = %.2f Rub. \n",b,b*a);

  10. return 0;

  11. }




Рисунок 7 Результат работы программы к задаче №1

Комментарий к задаче 1 Программа запрашивает у пользователя на ввод число и помещает в переменную а. Длаее идет цикл с параметром с шагом 0,2 от 1 до 2 включительно. После чего прогрмма выводит на экран каждое полученное число по шагам цикла.

Задача 2: Дано целое число N (> 0). Найти произведение 1.1 · 1.2 · 1.3 · …

Листинг задачи 2

  1. #include <stdio.h>

  2. int main()

  3. {

  4. float a,c=1.0;

  5. while (1){

  6. printf("\n vvesti N = ");

  7. scanf("%f", &a);

  8. if (a>0){

  9. break;

  10. }

  11. printf("vvedite chislo bolshe 0");

  12. }

  13. float b;

  14. for(b=1.1; a>b; b+=0.1){

  15. c*=b;

  16. }

  17. printf("%f \n",c);

  18. return 0;

  19. }




Рисунок 8. Результат работы программы к задаче №2

Комментарий к задаче 2 Программа запрашивает у пльзователя число N которое больше

0 . С помошью условного оператора if программа проверяет ввел ли пользователь число

большее чем 0 . Если нет , то на экране появляется сообьщение о том , что введенное

число должно быть больше 0 . Если пользователь ввел правильное число с помощью

цикла с параметром с шагом 0,1 программа перемнажает каждуй шаг на предидущий ,

помещая результат в переменную с . После чего результат выводиться на экран.

1.6 Цикл с условием

Задача 1: Дано целое число N (> 0), являющееся некоторой степенью числа 2: N = 2K. Найти целое число K — показатель этой степени.

Листинг задачи 1:

  1. #include

  2. int main(void)

  3. {

  4. int n;

  5. printf("N:");

  6. scanf ("%i", &n);

  7. int k=0;

  8. while (n>=2){

  9. ++k;

  10. n/=2;

  11. }

  12. printf("K: %i\n",k);

  13. return 0;

  14. }



Рисунок 9. Результат работы программы к задаче №1.

Комментарий к задаче 1. Объявляем переменную n, запрашиваем у пользователя значение переменной n. Объявление переменой к(счётчик). Далее идёт цикл с предусловием, который высчитывает степень двойки. Выводим результат на экран.

Задача 2: Дано целое число N (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 2 + … + K будет меньше или равна N, и саму эту сумму.

Листинг задачи 2

  1. #include

  2. int main(void)

  3. {

  4. int n;

  5. printf("vvesti N:");

  6. scanf ("%d", &n);

  7. int k=0, b=0;



  1. while (b+k+1<=n){

  2. k++;

  3. b+=k;

  4. }

  5. printf("naibolshee K= %d \n Summa= %d",k,b);

  6. return 0;

  7. }




Рисунок 10. Результат работы программы к задаче №2

Комментарий к задаче 2 Программа запрашивает у пользователя на ввод число и помещает в переменную n , далее вводятся две переменные k и b. Цикл while проверяет истинно ли выражение b+k+i<=n , если выражение верно , то k увеличивается на 1 , а b принимает значение b+k. Как только выражение из цикла становиться ложным на экран выводиться конечный результат.

1.7 Последовательности
Задача 1: Дано целое число N и набор из N целых чисел. Если в наборе имеются положительные числа, то вывести True; в противном случае вывести False.
Листинг задачи 1:

  1. #include

  2. int main(void)

  3. {

  4. int i,n,r,b=0;

  5. printf("N:");

  6. scanf("%i", &n);

  7. for (i=1; i<=n; ++i){

  8. printf("%i:",i);

  9. scanf("%i", &r);

  10. if (r>0) b=1;

  11. }

  12. printf("%s\n",b?"True":"False");

  13. return 0;

  14. }




Рисунок 11. Результат работы программы к задаче №1.

Комментарий к задаче 2. Объявляем переменные i(счётчик), n(количество чисел в наборе), r(текущее число набора), b(показатель наличия положительных чисел в наборе). Запрашиваем значение переменной n у пользователя. Далее идёт цикл, в котором мы запрашиваем текущее число набора, и проверяем больше ли оно 0. После этого Выводим True или False при наличии положительных чисел в наборе.
Задача 2 Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести количество чисел в наборе.


Листингзадачи2

  1. #include

  2. int main()

  3. {

  4. int n,nn,i=0;

  5. double mas[100];

  6. for( i=0 ; i<100 ; i++)

  7. {

  8. printf("vvedite chislo: ");

  9. scanf("%d",&nn);

  10. mas[i]=nn;

  11. if (nn==0)

  12. break;

  13. }

  14. printf(" \n vsego chisel %d\n" ,i);

  15. return 0;

  16. }







Рисунок 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

  1. unit Unit1;

  2. {$mode objfpc}{$H+}

  3. interface

  4. uses

  5. Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

  6. type

  7. { TForm1 }

  8. TForm1 = class(TForm)

  9. Button1: TButton;

  10. procedure Button1Click(Sender: TObject);

  11. private

  12. { private declarations }

  13. public

  14. { public declarations }

  15. end;

  16. var

  17. Form1: TForm1;

  18. implementation

  19. {$R *.lfm}

  20. { TForm1 }

  21. procedure TForm1.Button1Click(Sender: TObject);

  22. begin

  23. Button1.Caption:='Ура!_заработало!' ;

  24. end;

  25. end.



Рисунок 15. Результат работы первой программы в Lazarus

Комментарий к первой программе в Lazarus При нажатии на кнопку программа должна выводить сообщение Ура! заработало! В этой кнопке. Для этого в форму добовляем кнопку . В свойствах ,на параметр при нажатии , меняем значение кнопки на Ура! заработало!

3.2 Полезная программа

Листинг полезной программы

  1. unit unit2;

  2. {$mode objfpc}{$H+}

  3. interface

  4. uses

  5. Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

  6. type

  7. { TForm1 }

  8. TForm1 = class(TForm)

  9. Button1: TButton;

  10. Edit1: TEdit;

  11. Edit2: TEdit;

  12. Label1: TLabel;

  13. Label2: TLabel;

  14. Label3: TLabel;

  15. Label4: TLabel;

  16. procedure Button1Click(Sender: TObject);

  17. private

  18. { private declarations }

  19. public

  20. { public declarations }

  21. end;

  22. var

  23. Form1: TForm1;

  24. implementation

  25. {$R *.lfm}

  26. { TForm1 }

  27. procedure TForm1.Button1Click(Sender: TObject);

  28. var

  29. pud, funt : integer;

  30. kg: real;

  31. begin

  32. pud:=StrToInt ( Edit1.Text );

  33. funt:=StrToInt ( Edit2.Text ) ;

  34. kg:=pud*16.38+funt*16.38/40 ;

  35. Label4.Caption:='В_килограммах:_'+FloatToStr( kg ) ;

  36. end;

  37. end.



Рисунок 16. Результат работы полезной прграммы

Комментарий к полезной программе Для выполнения данной задачи на поле форм добовляем названия , поля для ввода и кнопку. По нажатиию на кнопку программа конвектирует введенные значяения в поля для ввода из едениц измерения: пуды и фунты в киллограмы.

3.3 Консольное приложение среды Lazarus

Листинг консольного приложения в среде Lazarus

  1. program project1;

  2. {$mode objfpc}{$H+}

  3. uses

  4. Classes , SysUtils

  5. { you can add units after this };

  6. var

  7. gradus, minuta :integer ;

  8. radian : real ;

  9. begin

  10. write ('gradus=');

  11. readln(gradus);

  12. write ('minuta=');

  13. readln(minuta);

  14. radian:=gradus*pi/180+minuta*pi/(180*60);

  15. writeln('radian=' ,radian);

  16. end.




Рисунок 17. Результат работы консольного приложения среды Lazarus

Комментарий к консольному приложению в среде LazarusПрограмма запрашивает у

Пользователя ввести градусы и минуты , после чего по формуле gradus*pi/180+minuta*pi

/(180*60) вычисляет радиан и выводит на экран результат.

    1. Работа с комплексными числами

Листинг программы комплексные числа

  1. unit Unit1 ;

  2. {$mode objfpc}{$H+}

  3. interface

  4. uses

  5. Classes , SysUtils , LResources , Forms , Controls , Graphics ,

  6. Dialogs , StdCtrls ;

  7. type

  8. { TForm1 }

  9. TForm1 = class (TForm)

  10. Button1 : TButton ;

  11. Edit1 : TEdit ;

  12. Edit2 : TEdit ;

  13. Label1 : TLabel ;

  14. Label2 : TLabel ;

  15. Label3 : TLabel ;

  16. Memo1 : TMemo;

  17. procedure Button1Click ( Sender : TObject ) ;

  18. procedure FormCreate(Sender: TObject);

  19. procedure Memo1Change(Sender: TObject);

  20. private

  21. { private declarations }

  22. public

  23. { public declarations }

  24. end;

  25. type

  26. TComplex = class

  27. private

  28. x : real ;

  29. y : real ;

  30. public

  31. constructor Create ;

  32. function Modul() : real ;

  33. function Argument() : real ;

  34. function ComplexToStr() : String ;

  35. end;

  36. var

  37. Form1 : TForm1 ;

  38. chislo : TComplex ;

  39. implementation

  40. constructor TComplex. Create ;

  41. begin

  42. x :=0; y :=0;

  43. inherited Create ;

  44. end;

  45. function TComplex.Modul () : real ;

  46. begin

  47. modul:=sqrt( x*x+y*y ) ;

  48. end;

  49. function TComplex.Argument () : real ;

  50. begin

  51. argument:=arctan( y/x )*180/pi ;

  52. end;

  53. function TComplex.ComplexToStr() : String ;

  54. begin

  55. if y>=0 then

  56. ComplexToStr:=FloatToStrF (x,ffFixed ,5 ,2)+ '+' +

  57. FloatTostrF (y , ffFixed ,5 ,2)+ ' i '

  58. else

  59. ComplexToStr :=FloatTostrF (x , ffFixed ,5 ,2)+

  60. FloatTostrF (y , ffFixed ,5 ,2)+ ' i '

  61. end;

  62. procedure TForm1.Button1Click ( Sender: TObject ) ;

  63. Var Str1 : String ;

  64. begin

  65. chislo:=TComplex.Create ;

  66. chislo.x:=StrToFloat ( Edit1.Text ) ;

  67. chislo.y:=StrToFloat ( Edit2.Text ) ;

  68. Str1 := 'Kompleksnoe_chislo_'+chislo.ComplexToStr () ;

  69. Memo1.Lines.Add( Str1 ) ;

  70. Str1:= 'Modul_chisla_'+

  71. FloatToStrF ( chislo.Modul () , ffFixed , 5 , 2 ) ;

  72. Memo1.Lines.Add( Str1 ) ;

  73. Str1:= 'Argument_chisla_'+

  74. FloatToStrF( chislo.Argument () , ffFixed , 5 , 2 ) ;

  75. Memo1.Lines.Add( Str1 ) ;

  76. chislo.Free ;

  77. end;

  78. procedure TForm1.FormCreate(Sender: TObject);

  79. begin

  80. Memo1.text :='';

  81. end;

  82. procedure TForm1.Memo1Change(Sender: TObject);

  83. begin

  84. end;

  85. initialization

  86. {$I unit1.lrs}

  87. 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:

  1. # Число n можно считать так:

  2. n = int(input())

  3. k = int(input())

  4. b = int(k/n)

  5. s = int(k%n)

  6. # Выводите результат через print()



  7. # Пример на деление, вычисление частного и остатка:

  8. print(b)

  9. print(s)



Рисунок 18. Результат работы программы к задаче №2.
Задача 3 Обувная фабрика собирается начать выпуск элитной модели ботинок. Дырочки для шнуровки будут расположены в два ряда, расстояние между рядами равно aa, а расстояние между дырочками в ряду bb. Количество дырочек в каждом ряду равно NN. Шнуровка должна происходить элитным способом “наверх, по горизонтали в другой ряд, наверх, по горизонтали и т.д.” (см. рисунок). Кроме того, чтобы шнурки можно было завязать элитным бантиком, длина свободного конца шнурка должна быть ll. Какова должна быть длина шнурка для этих ботинок?

Листинг задачи 3

  1. a = int(input())

  2. b = int(input())

  3. l = int(input())

  4. N = int(input())

  5. 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


  1. n = int(input())

  2. b = int(input())

  3. if n < b:

  4. print(n)

  5. if n==b:

  6. print(n)

  7. if n > b:

  8. 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


  1. v = int(input())

  2. t = int(input())

  3. print((v*t)%109)



Рисунок 21. Результат работы программы к задаче 1


Комментарий к задаче 21 Программа запрашивает у пользователя на ввод 2 числа , в переменную v помещается введенная скорость , а в переменную t – введеное время . Следующим шагом скорость умножается на время , береться остаток от деления на 109 и выводится га экран.

Задача 2 Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползет до вершины шеста? Программа получает на вход натуральные числа hab.Программа должна вывести одно натуральное число. Гарантируется, что a>b.

Листинг задачи 2

    1. from math import ceil

    2. h = int(input())

    3. a = int(input())

    4. b = int(input())

    5. m = h-a

    6. v = a-b

    7. y = m/v

    8. n = ceil(y)

    9. print(n+1)



Рисунок 22. Результат работы программы к задаче 2


Комментарий к задаче 2 Для выполнения данной задачи потребовалось воспользоваться библеотекой math. Программа запрашивает у пользователя на ввод 3 числа. В переменную m помещается результат разности переменных h и a расстояние которое нужно пройти улитки , кроме последнего дня. В переменную v помещается разность переменных a и b – расстояние кторое улитка проползает за 1 день , при условии что сползает назад.. Далее в переменную y помещается результат деления m на v - количество дней , которых улитка будет ползти и сползать обратно. В переменную n помещается округленное значение переменной у. Прибовляется еще один вычтенный ранее день к переменной n и выводится на экран.


Заключение

На основании пройденной учебной практики можно сделать следующие выводы

  1. Получен опыт отладки программного кода.

  2. Изучены инструментальные средства программирования : Dev-Cpp , Lazarus, интерпретатор Python 3.7

  3. Получен опыт разработки кода программного продукта на основе готовой спецификации на уровне модуля

  4. Получен практический опыт разработки алгоритмов и их реализация на языках программирования c , c++ , Delphi , Python.

  5. Получен опыт проведения тестирования программного модуля по определенному сценарию.

Общее впечатление от пройденной учебной практики - положительное.

Программа практики выполнена в полном объеме, поэтому цель и задачи практики считаю достигнутой, а практику успешно пройденной.

Список использованной литературы

  1. Шилдт, Герберт С++ за 24 часа , 4-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2006. – 800 с.

  2. Питонтьютор
    [Электронный ресурс].- Режим доступа.- URL: http://pythontutor.ru/ (дата обращения: 22.04.2017). Загл. с экрана

  3. Алексеев Е. Р. Free Pascal и Lazarus: Учебник по программированию / Е.Р. Алексеев, О. В. Чеснокова, Т. В. Кучер – М.: ALT Linux; Издательский дом ДМК-пресс, 2010. – 440 с.

  4. Подбельский В. В., Фомин С.С. Программирование на языке Си: Учеб. пособие. – 2-е доп. изд. – М.: Финансы и статистика, 2004. – 600 с.

  5. Мансуров К.Т. Основы программирования в среде Lazarus, 2010. – 772 с.:

  6. Семакин И. Г Основы программирования: Учебник для сред. проф. Образования / И.Г. Семакин, А. П. Шестаков. – 2-е изд., стер. – М.: Издательский центр «Академия», 2003. – 432 с.


написать администратору сайта