Информатика -продвинутый курс


СИ И ПАСКАЛЬ


При знакомстве с языком Си, особенно после изучения Паскаля и Бейсика, погружение в детали его изобразительных средств может затушевать важную мысль: хотя на Си можно написать практически любую прикладную программу, он изначально для этого не предназначен. Си является результатом эволюционного развития языков создания системных программных средств. Если в прикладном программировании эволюция шла от Фортрана к Алголу, Коболу, Паскалю и т.д., то в системном - от Ассемблеров, привязанных к архитектуре ЭВМ, к Си, для которого созданы трансляторы, делающие его хоть и независимым от архитектуры, но не меняющим основного предназначения.

С помощью Си можно сделать то, что на Паскале сделать невозможно (или почти невозможно) - например, написать фрагмент операционной системы (или новую операционную систему), утилиты и т.п. Так, ряд трансляторов с Паскаля написаны на Си; обратное невозможно представить. В то же время, не раз отмечалось, что прикладные программы, написанные на Паскале, отличаются большей надежностью, чем написанные на Си; их легче читать, передавать от одного программиста другому для совершенствования и сопровождения. Это связано с тем, что Паскаль содержит существенно больше ограничений и является языком более высокого уровня с сильной типизацией данных. Для языка же. который предназначен для разработки системного программного обеспечения, чем меньше ограничений, тем лучше; так, в Си возможны неявные преобразования всех базовых типов данных и указателей друг в друга, что крайне желательно при создании системных средств, но при невнимательности программиста приводит к ошибкам, не улавливаемым транслятором с Си (Паскаль же подобные недопустимые операции пресекает немедленно).

Разумеется, сказанное выше не следует абсолютизировать. Программисты, привыкшие к Си, успешно пишут на нем программы различных классов. Это касается не только Си - вспомните об экспертных системах, написанных на Бейсике. В то же время, при массовом программировании придерживаться «разделения труда» между языками представляется более естественным.


Контрольные вопросы и задания

1. Охарактеризуйте назначение и особенности языка Си.

2. Какие символы образуют алфавит языка Си?

3. Что называется лексемами, идентификаторами, литералами? Приведите примеры.

4. Какие типы данных используются в Си? Приведите примеры описания переменных.

5. Охарактеризуйте арифметические, логические и битовые операции Си.

6. Какие разновидности оператора присваивания имеются в Си?

7. Как на языке Си можно описать ветвление?

8. Охарактеризуйте возможности цикла for. Приведите примеры.

9. Какие логические циклы имеются в Си? Приведите примеры их использования.

10. Какие операторы управления имеются в Си?

11. Какова структура программы на Си? Что такое функция?

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

13. Для чего в качестве аргументов функций используются указатели? Приведите примеры.

14. Для чего в Си существуют классы памяти?

15. Что такое потоки и файлы в Си?

16. Охарактеризуйте стандартные функции ввода и вывода в Си.

17. Что такое препроцессор Си? Приведите примеры директив препроцессора.


Содержание раздела