ЭЛЕКТРОННЫЙ НАУЧНЫЙ ЖУРНАЛ «APRIORI. СЕРИЯ: ЕСТЕСТВЕННЫЕ И ТЕХНИЧЕСКИЕ НАУКИ»
УДК 004
С ИЛИ PASCAL, С ЧЕГО НАЧАТЬ?
Ветчинкин Дмитрий Анатольевич
студент
Трунин Дмитрий Сергеевич
студент
Волков Виталий Александрович
студент
Мордовский государственный университет им. Н.П. Огарева, Саранск
author@apriori-journal.ru
Аннотация. В данной статье рассматривается преимущество языка C для людей, которые хотят связать свою жизнь с программированием. Перспективность изучения данного языка для дальнейшего изучения объектно-ориентированного программирования на языках C++, С#, JavaScript, являющихся самыми популярными в мировом рейтинге. Для подтверждения популярности данного языка приводятся рейтинг TIOBE за 2015 год. А также пример выполнения математической задачи, с полным программным кодом. Производится сравнение между C и Pascal.
Ключевые слова: язык; программирование; С; Pascal; преимущества; недостатки.
C OR PASCAL, WHICH CHOOSE TO BEGIN?
Vetchinkin Dmitry Anatolyevich
student
Trunin Dmitry Sergeevich
student
Volkov Vitaly Alexandrovich
student
Ogarev Mordovian State University, Saransk
Abstract. In this article we can see advantages of C language for people who want to connect their lives with software engineering. The studying of this language is profitable for future learning C++, C#, JavaScript languages, which are the most popular in the world rating. To confirm its popularity there is a TIOBE rating in 2015. There is an example of solving a mathematical problem with a complete source code. There is a comparison between C language and Pascal.
Key words: language; programming; C; Pascal; advantages; disadvantages.
Введение
Когда человек впервые задумывается начать программировать, то перед ним встаёт сложный вопрос, с какого языка стоит начать обучение. Ведь выбор очень богат, так как языков существует великое множество. В ВУЗах и школах часто предлагается Pascal. Он был изобретён в целях изучения программирования Н. Виртом. Но предпочтительнее начать изучение с языка C, который изначально разрабатывался для профессионального программирования. К тому же это будет наиболее
дальновидным выбором, который в дальнейшем поможет с лёгкость переключиться на C подобные языки, как Java, C++, C# и другие. Тем не менее, язык C является своеобразным фундаментом, на который можно опереться при изучении других языков. Язык C формируют «правильное» программистское мышление.
Преимущества C
Язык программирования C был разработан в лабораториях Bell Labs в период с 1969 по 1973 годы. Согласно Д. Ритчи, самый активный период творчества пришёлся на 1972 год. Язык назвали «C», потому что многие его особенности берут начало от предшественника - языка «B»
Язык C быстро приобрел огромную популярность, как один из наиболее важных и популярных языков программирования. Программисты отдают Ему всё больше и больше предпочтения, чем всем другим языкам уже после первого знакомства с ним. При свободном владении языком C перед вами откроется возможность наиболее глубокой оценки его преимуществ. Сейчас авторы упомянут лишь некоторые из них, описанные в [1].
Современность. В C включены управляющие конструкции, рекомендуемые практическим и теоретическим программированием. Такая структура рекомендует программисту использовать нисходящее проектирование, структурное программирование и пошаговую разработку мо-
w w п
дулей в своей задаче. В результате такого подхода программа становится более надежной и читаемой.
Эффективность. Язык построен так, что позволяет использовать все возможности современных ЭВМ. Программы, выполненные на C, отличаются быстротой исполнения и компактностью.
Переносимость/мобильность. Переносимость кода с одной вычислительной системы на другую возможно с небольшими изменениями, либо вовсе без них. Если изменения все же требуются, то это достигается редактированием «header» файла, который сопровождает главную
программу. Язык C предоставляет уникальные возможности для переносa программ. Компиляторы с данного языка реализованы почти на 40 типах вычислительных систем, начиная от- 8-разрядных микропроцессоров и кончая CRAY-1 одним из самых мощных в настоящее время суперкомпьютеров.
Мощность и гибкость. Значительная часть мощной и гибкой операционной системы UNIX написана на C. Примером могут служить компиляторы и интерпретаторы языков: Fortran, APL, Pascal, Lisp, Logo и Basic. Поэтому, при использовании компилятора Fortran в системе UNIX, конечная программа в итоге получается с помощью некоторой подпрограммы, написанной на C. Кроме того, технические и физические задачи легче решать при помощи языка C.
Наличие конструкций управления и соглашения о вызовах, используемых в Assembler. Если вы остановите свой выбор на C, то сможете реализовывать свои программы с максимальной эффективностью.
Понятность. Он хорошо структурирован, чтобы поддерживать хороший стиль программирования, при этом не ограничивать свободу действий программиста. Кроме уже упомянутых достоинств язык C имеет и некоторые другие.
Практические занятия на C
При изучении теоретического материала по языку C необходимо использовать курс лабораторно-практических работ. Практическая часть сопровождается примерами и задачами, которые способствуют освоению теоретического материала как данного лабораторно-практического занятия, так и лекционного курса по данной теме, рассмотренные в [2]. Авторы считают, что все практические примеры должны быть представ-
w W п
лены с решениями и программной реализацией. В связи с этим, у преподавателя возникает необходимость в структурированности лабора-торно-практических занятий, которые бы способствовали развитию ма-
тематического мышления и способностей при изучении той или иной учебной дисциплины.
Рассмотрим типовой программный код на языке C в MS Visual Studio 2013 (2015) на примере решения задачи взятой из [3-5].
Написать программу, для расчета значений функции распределения интервалов времени в потоке Эрланга 4-го порядка (k = 4) с параметром X = 2.3 на отрезке времени от 0 до 5 (условных единиц) с шагом 0.2:
Приведем возможный программный код решения примера на языке C:
#include<stdio.h> #include<conio.h> #include<math.h> int main(void)
{
int f, k /*порядок потока Эрланга*/ = 4; double F, Lt, s , t = 0.0, Tend = 5.0; double L = 2.3;
printf_s("\n Erlang function of order %d, Lambda = %1.2f:\n\n", k, L); for ( ; t <= Tend; t += 0.2) { s = 0.0; f = 1; Lt = 1.0; for (int j = 1; j <= k; ++j) {
f *= j; Lt *= (L*t);
s += (Lt/f)*exp(-L*t); }
F = 1 - exp(-L*t) - s;
printf_s("\t %0.6f\n", F);
}
printf_s("\n\n Press any key: "); _getch();
return 0; }
Результат выполнения программы представлен на рисунке 1.
C:\Windows\systerri32\cmd.exe
Erlang function of order 4, Lanbda = 2.30:
0.000000 0.000117 0.002574 0.013478 0.039370 0.083751 0.146148 0.222958 0.308923 0.398492 0.486766 0.569971 0.645590 0.712258 0.769541 0.817689 0.857392 0.889588 0.915315 0.935605 0.951420 0.963619 0.972937 0.979995 0.985298
Press any key:
Рис. 1. Расчет функции распределения интервалов времени
в потоке Эрланга
В коде показан пример использования многострочного комментария при объявлении переменных. Так же применен форматированный вывод данных в консоль, с помощью функции printf_s и модификатора %0.6f, что означает выводить 6 знаков после запятой.
C или Pascal
Безусловно, каждый язык имеет ряд собственных преимуществ. Код, написанный на C, будет более эффективным, чем код, написанный на Pascal, но нельзя сказать, что на Pascal невозможно составить высокоэффективный код. Дело в том, что C - это системный язык программирования и поэтому больше пригоден для системного уровня программирования. Pascal же, в настоящее время используется только для обучения основам программирования. Код на Pascal - это формальное, абстрактное представление алгоритма решения задачи. На C же код мо-
жет быть не просто формальным, но и аппаратно-ориентированным представлением алгоритма решения задачи. Однако, в любом программировании, прежде всего, важна структура построения программы.
Sep 2015 Sep 2014 Charge Programming Language Ratings Change
1 2 А Java 19.565% -<-5.43%
2 1 V C 15.621% -1.10%
3 4 А C++ 6.782% +2.11%
4 5 А c# 4.909% +0.56%
5 8 А Python 3.664% +0.88%
6 7 А PHP 2.530% -0.59%
7 0 А JavaScript 2.342% -0.11%
8 11 А Visual Basic .NET 2.062% +0.53%
9 12 А Perl 1.899% +0.53%
10 3 У Objectlve-C 1 821% -8.11%
11 29 А Assembly language 1.806% +1.22%
12 13 А Ruby 1 783% +0.50%
13 15 А Delphi/Object Pascal 1.745% +0.59%
14 14 Visual Basic 1.532% +0.26%
15 17 А Pascal 1.298% +0,40%
16 18 А Swift 1.188% +0.34%
17 19 А MATLAB -1.181% +0.36%
18 20 А PL/SQL 1.082% +0.27%
19 21 А R 1.045% +0.24%
20 31 Л COBOL 0.994% +0.42%
Рис. 2. Рейтинг TIOBE
На Pascal объявление переменных происходит справа налево, что затрудняет понимание и чтение кода программы, нежели на C, где код пишется с лева на право. Так же C рассматривает верхние и нижние регистры переменных раздельно. Следовательно, count, Count и COUNT -это три разных идентификатора. Это позволяет удобнее программиро-
вать системы массового обслуживания: L - интенсивность пуассоновско-го потока; m- интенсивность обслуживания; M - параллельное включение каналов. В C более интенсивная работа с указателями. К тому же C позволяет написать код наиболее оптимальный для конвейера процессора, что увеличивает скорость выполнения программы, чего нельзя добиться на Pascal. Конечно, если программа не требует массированной обработки данных и эффективный код не нужен, то можно воспользоваться Pascal. Но при решении более сложных и требовательных задач потребуется C, к тому же он поможет решить проблему надёжности и подход к написанию кода на C не имеет ограничений, чем не может похвастаться Pascal. Так же стоит упомянуть, что Pascal уже много лет не является популярным языком программирования, как и его объектно-ориентированный потомок Delphi. При этом C и его C-подобные приемники: Java, C++, C# стоят на главенствующих позициях таких популярных рейтингов, как TIOBE (см. рис. 2).
Заключение
Рассмотрены преимущества и спецификации языка C. Приведённый пример решения математической задачи, показывает наглядную структурированность данного языка. Проведено сравнение языков C и Pascal. Необходимость систематизированной практической работы при изучении теоретического материала.
Список использованных источников
1. Прата С. Язык программирования С. Лекции и упражнения. М.: Вильямс, 2006. 960 с.
2. Афонин В.В., Федосин С.А. О структурировании лабораторно-прак-тических занятий при изучении дисциплин программирования // Образовательные технологии и общество. 2014. Т. 17. № 4. С. 497-506.
3. Александров Э.Э., Афонин В.В. Программирование на языке С в Microsoft Visual Studio 2010.[Электронный ресурс]. Режим доступа: http://www.intuit.ru/department/pl/prcmsvs2010 (дата обращения: 15.10.2015).
4. Александров Э.Э., Афонин В.В. Программирование на языке С в Microsoft Visual Studio 2010. Саранск: Изд-во Мордов. ун-та, 2010. 424 с.
5. Александров Э.Э., Афонин В.В. Введение в программирование на языке С. Саранск: Изд-во Мордов. ун-та, 2009. 316 с.