- •1 Введение
- •2 Сравнительный анализ языков программирования Си и Паскаль
- •2.1 История создания языков программирования
- •2.2 Типы данных
- •2.3 Комментарии
- •2.4 Операции
- •2.5 Операторы ветвления
- •2.6 Массивы
- •2.7 Строки
- •2.8 Подпрограммы
- •2.9 Указатели
- •2.10 Заключение сравнительного анализа языков Си и Паскаль
- •3 Постановка задачи
- •3.1 Алгоритм решения поставленной задачи
- •4 Реализация компьютерной игры «100 спичек»
- •4.1 Создание меню
- •4.2 Копка Help
- •4.3 Кнопка ComputerVsPerson
- •4.4 Кнопка PersonVsPerson
- •4.5 Кнопка ComputerVsComputer
- •4.6 Кнопка Exit
- •4.7 Данные к работе
- •5 Заключение
- •6 Список используемых источников
- •Приложение а (справочное)
2.2 Типы данных
Система типов в языке программирования Си схожа с системой Паскаля: имеются целые типы разного диапазона, символьные типы, типы с плавающей запятой, также присутствует такой тип данных как структура, схожий с записями на Паскале. Но в Си, в отличие от Паскаля, нет строчного типа данных, вместо него используется массив символов, который заканчивается специальным символом конца строки – нуль терминатором (символом ‘\0’), (зато присутствует библиотека для работы с такими массивами символов, как со строками). Также в Си присутствуют как знаковые (signed), так и беззнаковые (unsigned) типы данных. В отличие от Паскаля в Си существует пустой тип данных (void). Кроме того, язык Си предлагает тип объединение, с помощью которого можно либо хранить в одном месте памяти разнородные данные, не пересекающиеся по времени существования, это позволяет экономить память. В Си существует векторный тип данных enum – тип дня именованных констант [4]. В Паскале в отличие от Си существует логический тип данных – boolean, в Си же за ложь принимается любой ноль, а за правду все остальное.
Преобразование типов:
Существует явное и неявное преобразование типов данных. В Си возможно и явное и неявное преобразование типов данных.
В Си явное преобразование происходит при проведении операций над переменными разных типов. Явное преобразование типов в Си возможно, осуществляется оно так: перед переменной ставиться название типа в круглых скобках. Также, например, типы char и int могут свободно смешиваться в арифметических выражениях: каждая переменная типа char автоматически преобразуется в int.
2.3 Комментарии
Комментарии – это текстовые пояснения к элементу исходного кода, отмеченные специальными символами [5]. Комментарии не являются исходным кодом программы и включены в нее только для облегчения понимания исходного кода. Комментарии не рассматриваются компилятором как исходный код и не влияют на компиляцию программы.
В Паскале комментарии заключаются в фигурные скобки и могут содержать любое количество текста. В Си комментарии начинаются после последовательности символов /* и заканчиваются последовательностью */ - такого типа комментарии могут занимать несколько строк. Если же требуется написать небольшой комментарий, то текст после двойного слеша и до конца строки будет являться комментарием.
Комментарии также удобны, когда в процессе отладки программы нужно временно исключить выполнение какого-то ранее написанного кода. Для этого нежелательный в данный момент времени участок кода помечается как комментарий. После выполнения этого действия «закомментированный» участок кода не участвует в работе программы.
2.4 Операции
Арифметические операции:
Арифметические операции (+, -, *, /) применимы, как к целым, так и к вещественным значениям. В таблице 2.4 можно увидеть, какого типа результат будет получен при выполнении этих операций над данными целого или вещественного типа.
Таблица 2.4 - Арифметические операции
А |
B |
a+b |
a-b |
a*b |
a/b |
Целое |
Целое |
Целое |
целое |
целое |
вещ |
Целое |
вещ |
Вещ |
вещ |
вещ |
вещ |
Вещ |
Целое |
Вещ |
вещ |
вещ |
вещ |
Вещ |
вещ |
Вещ |
вещ |
вещ |
вещ |
Логические операции:
В языке Паскаль понятие истины определяется специальным типом boolean, который имеет два значения – true (истина) и false (ложь) [6]. Для сравнения данных предусмотрены следующие операции отношения:
Операции “<” - меньше; “>” - больше; “=” - равно; “<=” - меньше или равно; “>=”- больше или равно; “<>” - не равно.
В математической логике имеются специальные логические операции:
Операция “or” – логическое сложение (ИЛИ), “and” –логическое умножение (И), “not” – логическое отрицание (НЕ).
Таким образом, логические выражения строятся из логических переменных, логических констант, логических операций, операций отношений.
В языке Си определены следующие операции:
Унарные операции:
Операции “&” – операция адресации, “*” – операция обращения по ссылке, “+” – унарный плюс.
Операции “-“ – унарный минус; “!” – логическое отрицание; “++” – инкремент; “--“ – декремент.
Бинарные операции:
Операции “+” – Бинарный плюс; “-“ – бинарный минус; ”*” – умножение; “/” – деление; ”%” – остаток от деления; ”<<” – сдвиг влево; “>>” – сдвиг вправо.
Поразрядные операции:
Операции “&” - поразрядное И; “^” - поразрядное исключающее ИЛИ; “\!” - поразрядное включающее ИЛИ.
Логические операции:
Операции “&&” - логическое И; “\!\!” - логическое ИЛИ.
Операторы присваивания:
Операторы “=” - присваивание; “*=” - присвоить произведение; “/=” - присвоить частное; “%=” - присвоить остаток; “+=” - присвоить сумму; “-=” - присвоить разность; “<<=” - присвоить сдвиг влево; “>>=” - присвоить сдвиг вправо; “&=” - присвоить поразрядное И; “^=” - присвоить поразрядное исключающее ИЛИ; “\!=” - присвоить поразрядное ИЛИ.
Операции отношения:
Операции “<” - меньше; “>” - больше; “<=” - меньше или равно; “>=” - больше или равно.
Операции равенства:
Операции “==” - равно; “!=” - не равно.
Условные операции:
Операция “с ? k : l” - Если с то k, иначе l.