Улучшенное комментирование кода программы
 

Другие статьи из рубрики «Работа репетитора»

Содержание:

Я – профессиональный исполнитель всевозможных проектов по программированию на заказ

Приветствую всех на моем сайте! Меня зовут Александр Георгиевич. Я – московский профессиональный репетитор по информатике, программированию, математике, алгоритмам и базам данных.

Уже на протяжении 12 лет я готовлю школьников к успешной сдаче ОГЭ и ЕГЭ по информатике, а студентам преподаю современные и актуальные языки программирования, такие как Pascal, C, C++, C#.

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

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

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

РЕПЕТИТОР
ПО ИНФОРМАТИКЕ
И ПРОГРАММИРОВАНИЮ

ЧИТАТЬ
ОТЗЫВЫ МОИХ
УЧЕНИКОВ

Смотреть отзывы

АДРЕС
ЭЛЕКТРОННОЙ ПОЧТЫ
РЕПЕТИТОРА

Написать письмо

ЗАКАЗАТЬ
РАБОТУ ПО
ПРОГРАММИРОВАНИЮ

Работа на заказ

 

Пример программы, использующей улучшенное комментирование

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

Дан динамический одномерный целочисленный массив, состоящий из N элементов. Количество элементов запрашивается с клавиатуры от пользователя. Заполнение элементов массива осуществляется случайным образом из отрезка [-20 .. 50].

  • Вывести исходный массив на экран.

  • Найти сумму элементов массива.

  • Найти количество отрицательных элементов массива.

  • Отсортировать исходный массив методом «пузырька» и вывести его после сортировки на экран.

В качестве языка программирования буду использовать язык С++. Ваша задача очень внимательно ознакомиться с формулировкой условия, а затем внимательно, практически под микроскопом, изучить приведенный программный код. Особое внимание обращать на «зеленые строчки», являющимися комментариями.

Наличие комментариев в подобном объеме в коде программы я называю улучшенным комментированием.

  1. // для запуска из Visual Studio
  2. #include "stdafx.h"    
  3. // для ввода-вывода информации
  4. #include <iostream>    
  5. // для настроек локализации
  6. #include <locale>      
  7. // для использования манипуляторов ввода-вывода
  8. #include <iomanip>     
  9. // для прямого обращения к операторам, находящимся в std
  10. using namespace std;
  11. //---------------------------------------------
  12. // Заполнение элементов массива случайными значениями из отрезка [-20 .. 50]
  13. //---------------------------------------------
  14. // передается указатель на массив, а также количество элементов массива
  15. void initVector(int *pv, const int pn)
  16. {
  17. // пробегаем по всем элементам массива
  18.     for(int i = 0; i < pn; i++)
  19. // генерируем случайное число из отрезка [-20 .. 50]
  20.         pv[i] = rand() % 71 - 20;
  21. }
  22. //---------------------------------------------
  23. // Вывод элементов массива на экран пользователя
  24. //---------------------------------------------
  25. // передается указатель на массив, кол-во элементов массив и диалог для печати
  26. void printVector(int const *pv, const int pn, const char *pmessage)
  27. {
  28. // перед печатью элементов массива выводим информационное сообщение
  29.     cout << pmessage;
  30. // просматриваем все элементы заданного массива
  31.     for(int i = 0; i < pn; i++)
  32. // выводим на экран текущий элемент шириной в 5 позиций
  33.         cout << setw(5) << pv[i];
  34. // для повышения читабельности отступаем пару строчек в консольном окне
  35.     cout << endl << endl;
  36. }
  37. //---------------------------------------------
  38. // Нахождение суммы элементов массива
  39. //---------------------------------------------
  40. // передается указатель на массив и количество элементов массива
  41. int getSumElemVector(int const *pv, const int pn)
  42. {
  43. // данная переменная отвечает за сумму и ее стартовое значение равно 0
  44.     int sum = 0;
  45. // просматриваем все элементы одномерного массива
  46.     for(int i = 0; i < pn; i++)
  47. // увеличиваем сумму на значение текущего элемента
  48.         sum += pv[i];
  49. // в качестве ответа функция возвращает посчитанную сумму
  50.     return sum;
  51. }
  52. //---------------------------------------------
  53. // Нахождение количества отрицательных элементов массива
  54. //---------------------------------------------
  55. // передаем указатель на массив и количество элементов массива
  56. unsigned short getCountNegativeElem(int const *pv, const int pn)
  57. {
  58. // хранит количество отрицательных элементов
  59.     unsigned short k = 0;
  60. // пробегаем по всем элементам массива
  61.     for(int i = 0; i < pn; i++)
  62. // если значение текущего элемента меньше 0, то
  63.         if(pv[i] < 0)
  64. // найден очередной минусовой элемент -> добавляем его к общему
  65. // количеству отрицательных элементов
  66.             k++;
  67. // в качестве ответа функция возвращает кол-во отрицательных элементов
  68.     return k;
  69. }
  70. //---------------------------------------------
  71. // Сортировка массива методом "пузырька"
  72. //---------------------------------------------
  73. // передается указатель на массив и его количество элементов
  74. int* bubbleSortVector(int *pv, const int pn)
  75. {
  76. // переменная, которая служит для обмена двух значений
  77.     int swap;
  78. // запускаем цикл, который показывает, сколько раз нужно будет
  79. // искать минимальный элемент
  80.     for(int i = 0; i < pn; i++)
  81. // в этом цикле ищется минимальный элемент и сдвигается в начало массива
  82.         for(int j = pn - 1; j > i; j--)
  83. // если текущий элемент меньше предыдущего, то
  84.             if(pv[j] < pv[j - 1])
  85. // меняем данные элементы местами
  86.             {
  87.                 swap = pv[j];
  88.                 pv[j] = pv[j - 1];
  89.                 pv[j - 1] = swap;
  90.             }
  91. // в качестве ответа возвращается указатель на отсортированный массив
  92.     return pv;
  93. }
  94. //---------------------------------------------
  95. // Главная функция всего проекта
  96. //---------------------------------------------
  97. int main()
  98. {
  99. // поддержка русскоязычных диалогов
  100.     setlocale(LC_ALL, "");     
  101. // чтобы каждый раз генерировались новые случайные значения
  102.     srand(time(0));            
  103. // хранит количество элементов исходного массива
  104.     int n;
  105.     cout << "Введите количество элементов массива: ";
  106. // считывание кол-ва элементов вводом с клавиатуры
  107.     cin >> n;
  108. // создаем динамический одномерный массив и выделяем для него память
  109.     int *v = new int[n];
  110. // инициализируем элементы массива случайными значениями
  111.     initVector(v, n);
  112. // выводим элементы вектора на экран пользователя
  113.     printVector(v, n, "Исходный массив: ");
  114. // находим сумму всех элементов массива и выводим ее на экран
  115.     cout << "Сумма элементов массива: " << getSumElemVector(v, n) << endl;
  116. // находим кол-во отрицательных элементов массива и выводим ее на экран
  117.     cout << "Количество отрицательных элементов массива: " << getCountNegativeElem(v, n) << endl;
  118. // сортируем заданный массив методом "пузырька"
  119.     bubbleSortVector(v, n);
  120. // выводим элементы массива на экран после сортировки
  121.     printVector(v, n, "Массив после сортировки: ");
  122. // необходимо не забыть освободить динамическую память из-под массива
  123.     delete []v;                
  124. // для повышения читабельности
  125.     cout << endl;
  126. // имитация задержки программы
  127.     system("pause");
  128.     return 0;
  129. }

Как влияет улучшенное комментирование на конечную стоимость программы

Да, влияет! Общая стоимость всего проекта удорожается. «Насколько?», - спросите вы. Каждую строчку в формате улучшенного комментирования я оцениваю в 5 рублей (на дворе стоит 2015 год, для справки). Когда цена будет изменена, то это непременно отразится и в этой статье. На текущий период стоимость 1 строки улучшенного комментирования составляет всего 5 рублей.

В приведенной программе проставлено 50 строк комментариев, следовательно, их общая стоимость составит 5 • 50 = 250 рублей.

Возникает закономерный вопрос, а насколько полезны и необходимы подобные комментарии? Во-первых, у вас появляется возможность самостоятельно разобраться с представленным кодом. Во-вторых, вам не потребуется заказывать мою разовую консультацию, чтобы я вам пояснил все труднопонимаемые фрагменты кода. Стоимость моей разовой консультации начинается минимум от 1 000 рублей.

В итоге на данной программе вы сэкономите 750 рублей, если выберите формат улучшенного комментирования и не будете привлекать меня для разбора всех моментов кодирования. Выгода на лицо, не правда ли? Очевидно, что да!

Остались вопросы, недопонимание? Звоните мне на мобильный телефон немедленно!

Если после ознакомления с данной статьей у вас остались какие-то вопросы, вам хочется уточнить какие-то наиболее тонкие моменты, то берите сотовый телефон, набирайте мой контактный номер телефона и задавайте их.

Я имею колоссальнейший успешный опыт выполнения проектов по программированию на заказ для студентов и школьников.  Хочется донести до всех следующую мысль: улучшенное комментирование – самый оптимальный вариант с позиции комментирования кода программы, так как код становится достаточно понятным даже новичкам и при этом вы экономите немалые деньги на моей разовой консультации.

А сейчас я предлагаю вашему вниманию небольшой презентационный видеоролик, в котором поясняю все ключевые моменты нашего взаимовыгодного в будущем сотрудничества, когда вы будете заказывать у меня какой-либо проект по программированию под ключ.

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

Я достаточно востребованный репетитор, поэтому действуйте прямо сейчас, так как завтра свободных мест уже может не оказаться.

Отзывы
моих учеников

Камю
Константин

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

Даниил
Сафонов

 
Чтобы программировать, нужно быть усидчивым и очень умным человеком. Я больше гуманитарий, поэтому мне вся эта техническая мысль дается крайне сложно. Но мне понравилось работать с Александром Георгиевичем. Видно, что...

Белов
Антон

 
Заниматься очень понравилось, преподаватель прекрасно знает преподаваемый материал. Многое узнал дополнительно, задавал много смежных вопросов и получал профессиональные ответы. Также понравилось, что в процессе урока...

Потапова
Ирина

 
Спасибо большое вам за помощь. Без вашей поддержки я бы не получила 5-ку на экзамене. Хочу особенно отметить, что на ваших уроках вы даете очень много полезной сопутствующей информации, в том числе и разного рода...

Пахмутов
Кирилл

 
Я не знаю почему, но так сложилось, что я не смог сходу понять логические преобразования и обратился за помощью к профессиональному репетитору Александру Георгиевичу. Результат превзошел все мои ожидания, я досконально...

Ермаченков
Александр

 
Был очень сложный экзамен, я безумно счастлив, что получил "хорошо", так как на "отлично" сдало всего 4 человека со всего потока (причем они серьезно изучали программирование еще до поступления в ВУЗ). Я понял, что С++...

Орлов
Максим

 
Спасибо большое вам Александр Георгиевич. Было очень интересно и увлекательно решать с вами данные лабораторные. Они оказались не такими сложными, какими они казались изначально. Оказывается процесс программирования...

Леонов
Никос

 
Полученный бал, превзошел все мои ожидания, так как я максимум рассчитывал на 90 баллов тестовых. Думаю, получением столь высокой оценки я обязан репетитору Александру Георгиевичу. Но мой личный вклад тоже не мал!

Коваленко
Всеволод

 
Хочу отметить дисциплину на уроках, я чувствовал себя как на официальной паре, никаких шуток и панибратств. Очень понравилось серьезное отношение к дисциплине, т к я сам челвоек дисциплинированный. Спасибо вам!

Юзов
Артур

 
Я благодарен Александру Георгиевичу за его работу со мной. Теперь чувствую себя уверенно при программирование на языке Паскаль. Если у меня в процессе последующего обучения возникнут какие-то проблемы, я обязательно...

Курцева
Мария

 
Я очень довольна результатами)) Меня бы даже устроило бы и 70 баллов. Положительные стороны репетитора: интересно доносит материал, является экспертом в своей области, уроки ориентированы на практику. Из отрицательных...

Мельник
Игорь

 
Я рад, что обратился к такому сильному репетитору, как Александр Георгиевич. Видно, что он прекрасно разбирается в студенческом программировании, владеет терминологией на шикарнейшем уровне, очень понятно объясняет....

Трунин
Сергей

 
На редкость сильный репетитор, абсолютно компетентен в преподаваемом предмете, знает язык программирования Turbo Pascal просто "насквозь". Было интересно заниматься и очень познавательно, так как в школе мы ничего этого...

Булычев
Владимир

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

Агаров
Ярослав

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

Якименко
Александр

 
Я вообще, в школе учусь плоховато и, меня натаскивают родители, заставляют заниматься, но когда занимались с Александром Георгиевичем, то мне нравилось, я начал понимать и начинала появляться уверенность, что я Смогу....

Некрасов
Алексей

 
Спасибо большое за помощь. На ваших уроках всегда высокая дисциплина, очень требовательны и строго проверяете домашнее задание. В целом я получил те знания, которые мне требовались. А вообще с графикой сложно работать,...
Смотреть все отзывы
 
 
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?
Занятия по информатике