Этапы решения инженерных задач с помощью ЭВМ. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Этапы решения инженерных задач с помощью ЭВМ.



Содержание

1. Ââåäåíèå

1.1  Ýòàïû ðåøåíèÿ èíæåíåðíûõ çàäà÷ ñ ïîìîùüþ ÝÂÌ.

1.2 Àëãîðèòìû ðåøåíèÿ çàäà÷.

1.2.1 Ïîíÿòèå àëãîðèòìà, åãî ñâîéñòâà.

1.2.2 Îáîçíà÷åíèÿ ýëåìåíòîâ àëãîðèòìîâ (áëîêè).

1.2.3 Áàçîâûå óïðàâëÿþùèå êîíñòðóêöèè.

1.2.4 Íåêîòîðûå ñòàíäàðòíûå ïðèåìû àëãîðèòìèçàöèè.

1.3 Ñèñòåìû ïðîãðàììèðîâàíèÿ.

1.3.1 Ñîñòàâ.

1.3.2 ßçûê ïðîãðàììèðîâàíèÿ, àëôàâèò, ñèíòàêñèñ, ñåìàíòèêà.

1.3.3 Ðåàëèçàöèÿ ÿçûêà.

1.4 Õàðàêòåðèñòèêè ÿçûêîâ ïðîãðàììèðîâàíèÿ.

1.5 Öåëåâîå íàçíà÷åíèå ñèñòåì ïðîãðàììèðîâàíèÿ.

1.5.1 Ìàøèííî-îðèåíòèðîâàííûå.

1.5.1.1 Ñèñòåìû ñèìâîëè÷åñêîãî êîäèðîâàíèÿ.

1.5.1.2 Àññåìáëåðû.

1.5.2 Ìàøèííî-íåçàâèñèìûå.

1.5.2.1 Ïðîöåäóðíî-îðèåíòèðîâàííûå.

1.5.2.2 Ïðîáëåìíî-îðèåíòèðîâàííûå.

1.6 Ýòàïû îáðàáîòêè ïðîãðàììû ìàøèíîé.

2. Îñíîâíûå ïîíÿòèÿ ÿçûêà Ñè++.

2.1 Èñòîðèÿ ñîçäàíèÿ.

2.2 Àëôàâèò, ñòðóêòóðà ïðîãðàììû.

2.2.1 Àëôàâèò.

2.2.2 Ñòðóêòóðà ïðîãðàììû.

2.3 Òèïû äàííûõ Ñè. Êîíñòàíòû. Ïåðåìåííûå. Îïèñàíèÿ ïåðåìåííûõ.

2.4 Âûðàæåíèÿ â ÿçûêå Ñè.

2.4.1 Àðèôìåòè÷åñêèå îïåðàöèè è âûðàæåíèÿ.

2.4.2 Ëîãè÷åñêèå îïåðàöèè è âûðàæåíèÿ.

2.4.3 Íåêîòîðûå äðóãèå îïåðàöèè â ÿçûêå Ñè.

2.4.3.1 Îïåðàöèÿ ïðèñâàèâàíèÿ.

2.4.3.2 Óñëîâíàÿ îïåðàöèÿ.

2.4.3.3 Îïåðàöèÿ ïîñëåäîâàòåëüíîãî âû÷èñëåíèÿ (çàïÿòàÿ).

2.4.3.4 Ñïåöèôè÷åñêèå ôîðìû îïåðàöèè ïðèñâàèâàíèÿ.

2.4.3.5 Ïðèîðèòåò âûïîëíåíèÿ îïåðàöèé.

2.4.4 Ñòàíäàðòíûå ôóíêöèè.

2.4.4.1 Ïðàâèëà çàïèñè.

2.4.4.2 Îñíîâíûå ìàòåìàòè÷åñêèå ôóíêöèè.

2.5 Ïðîñòåéøèå îïåðàòîðû ÿçûêà Ñè.

2.5.1 Îïåðàòîð-âûðàæåíèå.

2.5.2 Îïåðàòîðû äëÿ ââîäà è âûâîäà èíôîðìàöèè.

2.5.2.1 Îïåðàòîð áåñôîðìàòíîãî âûâîäà íà ýêðàí.

2.5.2.2 Îïåðàòîð áåñôîðìàòíîãî ââîäà ñ êëàâèàòóðû.

2.5.2.3 Ôóíêöèÿ ôîðìàòíîãî âûâîäà íà ýêðàí.

2.5.2.4 Ôóíêöèÿ ââîäà ñèìâîëà ñ êëàâèàòóðû.

2.5.3 Ñîñòàâíîé îïåðàòîð.

3. Îïåðàòîðû óïðàâëåíèÿ.

3.1 Óñëîâíûå îïåðàòîðû.

3.1.1 Îïåðàòîð if - else.

3.1.2 Îïåðàòîð else - if.

3.2 Îïåðàòîð-ïåðåêëþ÷àòåëü. Îïåðàòîð break.

3.3 Îïåðàòîðû äëÿ îðãàíèçàöèè öèêëà.

3.3.1 Îïåðàòîð öèêëà ñ ïðåäóñëîâèåì (while).

3.3.2 Îïåðàòîð öèêëà ñ ïîñòóñëîâèåì (do).

3.3.3 Îïåðàòîð öèêëà ñ ïàðàìåòðîì (for) èëè ïîøàãîâûé.

3.3.4 Âëîæåííûå öèêëû.

3.3.5 Îïåðàòîðû break è continue.

3.3.6 Îïåðàòîð áåçóñëîâíîãî ïåðåõîäà.

4. Èñïîëüçîâàíèå ìàññèâîâ. Óêàçàòåëè.

4.1 Ìàññèâû.

4.1.1 Ïîíÿòèå ìàññèâà. Îïèñàíèå ìàññèâà.

4.1.2 Èíèöèàëèçàöèÿ ìàññèâîâ.

4.1.2.1 Èíèöèàëèçàöèÿ ìàññèâîâ ïðè èõ îáúÿâëåíèè.

4.1.2.2 Èíèöèàëèçàöèÿ ìàññèâîâ ââîäîì ñ êëàâèàòóðû.

4.1.3 Âûâîä ìàññèâîâ.

4.1.4 Ðàáîòà ñ ìàññèâàìè.

4.2 Óêàçàòåëè.

4.2.1 Àäðåñà è óêàçàòåëè.

4.2.2 Ìàññèâû è óêàçàòåëè.

4.2.3 Ñòðîêè è óêàçàòåëè.

5. Ôóíêöèè ïîëüçîâàòåëÿ â ÿçûêå Ñè.

5.1 Íàçíà÷åíèå ôóíêöèé. Îïèñàíèå ôóíêöèè.

5.2 Îáðàùåíèå ê ôóíêöèè. Ïðîòîòèï ôóíêöèè. Îáëàñòü âèäèìîñòè è âðåìÿ æèçíè ïåðåìåííûõ.

5.3 Ïðàâèëà ñîîòâåòñòâèÿ ôîðìàëüíûõ ïàðàìåòðîâ è ôàêòè÷åñêèõ àðãóìåíòîâ.

5.4 Ïåðåäà÷à äàííûõ ïî çíà÷åíèþ è ïî àäðåñó. Ôóíêöèÿ scanf().

5.5 Èñïîëüçîâàíèå ìàññèâîâ â êà÷åñòâå àðãóìåíòîâ ôóíêöèè.

6. Ðàáîòà ñ âíåøíèìè ôàéëàìè â Ñè.

6.1 Ôàéëîâûé óêàçàòåëü. Îòêðûòèå ôàéëà.

6.2 ×òåíèå äàííûõ èç òåêñòîâîãî ôàéëà.

6.3 Çàïèñü äàííûõ â òåêñòîâûé ôàéë. Çàêðûòèå ôàéëà.

Введение

Конспект посвящен второму разделу дисциплины "Информатика" - "Основы алгоритмизации и программирование". Он написан на основе курса лекций, прочитанных в МГТУ "СТАНКИН" в течение последних 5 лет для студентов 2 семестра обучения.

Конспект рассчитан на 7 лекций и соответствует рабочим программам по дисциплине "Информатика" для направлений обучения 651400 - Машиностроительные технологии и оборудование; 062000 - Механика и робототехника; 657800 - Конструкторско-технологическое обеспечение машиностроительных производств; 657900 - Автоматизированные технологии и производства, 653700 - Приборостроение, 653800 - Стандартизация, сертификация и метрология.

Излагаемый материал предусматривает три уровня сложности в соответствии с требованиями системы "Ритм". Часть вопросов можно вынести на рассмотрение на практических занятиях, некоторые вопросы могут быть прочитаны факультативно для студентов, желающих повысить свою квалификацию. Для потоков, специализирующихся в дальнейшем в программировании (например, для направлений 657900, 653700), изложение основных элементов языка можно сократить в пользу более сложных конструкций, связанных с обработкой строк, работой с указателями и внешними файлами.

При изложении материала предполагается, что студентами освоена программа I семестра в части принципов работы ЭВМ и представления в памяти ПК чисел, символов и команд. Также считается, что студенты владеют сведениями о программном обеспечении ПК и функционировании операционных систем в объеме программы I семестра.

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

На протяжении всего курса проводится идея первичности построения алгоритма решения задачи и вторичности написания программного кода на языке высокого уровня. Такой подход связан не только с тем, что именно так и происходит в инженерной практике, но и с желанием (порой непреодолимым) студентов поскорее написать программу, не продумав и не сконструировав в каком-либо виде алгоритм решения задачи. В связи с этим уделяется большое внимание формализации процесса перехода от алгоритма решения, записанного в графической форме, к алгоритму, записанному на языке программирования.

Рекомендуемая литература

а) основная литература

1. Керниган, Д. Ритчи. Язык программирования Си (пер. с англ.). — М.: Финансы и статистика, 1992.

2. Березин Б.И., Березин С.Б. Начальный курс С и С++ Диалог МИФИ 1996

3. Дейтел Х., Дейтел П. Как программировать на С++: Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 1998 г. – 1024 с.: ил.

4. Луис Дерк. Справочник С и С++. М., Бином, 1997

 

б) дополнительная литература:

1. Паппас К., Мюррей У. Программирование на C и C++. Библиотека студента. BHV 2000.

2. Культин Н.Б. С/С++ в задачах и примерах. – Спб.: БХВ-Петербург, 2001.-288 с.: ил.

3. Крячков А.В. и др. Программирование на С и С++. Практикум. М.: Радио и связь. 1997.

4. Подбельский В.В. Язык С++. М.: Финансы и статистика, 1996.

5. Ишкова Э.А. С++. Начала программирования – М.: ЗАО «Издательство БИНОМ», 2000. – 304 с.: ил.

 

Алгоритмы решения задач.

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

Основные блочные символы.

Таблица 1.

Название Внешний вид Пример Назначение
Линии передачи управления (потока информации)       Соединяют различные блоки между собой, показывают последовательность выполнения блоков алгоритма.
Соединение линий потока информации Служит для соединения нескольких линий в одну. Стрелки ставятся при направлении линии справа налево и снизу вверх.
Начало алгоритма Внутри указывается назначение или название алгоритма. Вход может быть только один.
Конец алгоритма Внутри можно указать вычисляемое в алгоритме данное. Выходов из алгоритма может быть несколько.
Блок обработки данных (последо­вательное действие или процесс) Применяется для обозначения одного или последовательности действий, изменяющих значение, форму представления или размещение данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединить в один блок.
Ветвление (развилка) Используется для обозначения переходов управления в зависимости от выполнения условия. Если условие истинно, управление передается по стрелке да, в противном случае - по стрелке нет.
Ввод данных (с клавиатуры) Используется для обозначения операций ввода информации. Пример: ввести значения переменных a и b с клавиатуры.
Вывод результатов на бумагу Используется для обозначения операций вывода информации. Пример: вывести значения переменных x и y.
Ввод или вывод данных (без указания устройства) Используется для обозначения операций ввода или вывода информации без указания устройства. Пример: ввести значения переменных a и b.
Предопределенный процесс (вызов модуля) Используется для указания обращения к алгоритму, описанному в другом месте. При этом должна существовать блок-схема, имеющая указанное название. Такой блок помогает структурировать алгоритм и облегчает понимание его работы в целом.
Разрыв линии передачи управления и ее продолжение Используется для разрыва линии передачи управления и продолжения алгоритма на том же листе, когда нужно избежать излишних пересечений линий переходов.
Перенос алгоритма на следующую страницу Используется для разрыва алгоритма, когда его схема не умещается на одном листе, и продолжения схемы алгоритма на указанном в блоке листе.
Текстовые пояснения Используется для дополнения схемы алгоритма текстовыми пояснениями.

Последовательность

           Действия выполняются в порядке их следования в алгоритме. Знак = в действии предписывает вычислить выражение справа от него и занести результат в переменную слева от него. x=d+sin(g); y=y+3; Второе действие предписывает сложить y и 3, а результат записать туда же, т.е. увеличить y на 3.

Ветвление

1. Вычисляется условие. 2. Если оно истинно, то выполняется действие1. Иначе выполняется действие 2. 3.Переход к следующему действию (продолжение алгоритма).   if (условие) действие1; else действие2; Пример: if (a>b) c=c+1; else c=c+2;
1. Вычисляется условие. 2. Если оно истинно, то выполняется действие1. 3.Переход к следующему действию (продолжение алгоритма).   if (условие) действие1;   Пример: if (x<0) y=x;  
  Условия проверяются сверху вниз. Как только встречается истина, выполняется соответствующее действие и последовательность проверок прекращается. Последнее действие срабатывает, если все предыдущие условия ложны.   if (условие1) действие1; else if (условие 2) действие 2; else if (условие3) действие 3; ························· else действие n;  

Повторение (цикл)

Цикл с предусловием. 1. Вычисляется условие. 2. Если оно истинно, то a) Выполняется действие. b) Переход к пункту 1. Иначе выход из цикла (продол­ жение алгоритма).   while (условие) действие; Пример: while (a<5) a=a+2;
Цикл с постусловием. 1. Выполняется действие. 2. Вычисляется условие. 3. Если оно истинно, то Переход к пункту 1. Иначе выход из цикла (продол­ жение алгоритма).     do действие while (условие); Пример: do x=x-1; while (x>0);  
Цикл с параметром (пошаговый). 1. Вычисляется начальное значение счетчика. 2. Вычисляется условие (продол­жения цикла); 3. Если оно истинно, то a) Выполняется действие; b) Вычисляется новое значение счетчика; c) Переход к пункту 2. Иначе - выход из цикла (продолжение алгоритма).   for(начальное значение счетчика; условие продолжения цикла; изменение счетчика) повторяемое действие Пример: s=0; for(i=1;i<50;i=i+1) s=s+i;  

Алгоритм обработки массива.

При решении задач с массивами чисел или символов чаще всего используется один и тот же алгоритм единообразной поочередной обработки каждого элемента массива в отдель­ности. Для этого обычно применяется цикли­ческий алгоритм с параметром, рассмотренный справа. Массив a из n элементов будем обозначать {a}n, а элемент массива с номером i - ai. Сначала вводится количество n элементов массива a и сам массив (блок 1). Затем проводятся подготовительные операции (блок 2), содержание которых зависит от решаемой задачи. Обычно здесь задаются начальные значения вспомогательным переменным. Блоки 3, 4 и 6 являются обязательными, именно они реа­лизуют цикл и позволяют поочередно обработать каждый элемент массива. Блок 3 задает но­мер начального элемента обрабатываемого мас­сива, блок 4 позволяет закончить обработку и выйти из цикла после превышения номером текущего элемента значения n, а блок 6 позволяет после обработки текущего элемента перей­ти к следующему, увеличив номер элемента на 1.

При обработке i-го элемента массива в некоторых случаях возможен досрочный выход из цикла, тогда в блок-схеме появляется блок 9, на который передается управление прямо от блока 5.

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

Системы программирования.

Состав.

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

В состав системы программирования обычно входят:

¨ описание применяемого языка программирования;

¨ текстовый редактор, позволяющий ввести текст программы и записать его в файл на диске;

¨ программы-трансляторы, переводящие исходный текст программы в машинный код;

¨ развитую библиотеку стандартных подпрограмм;

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

Реализация языка.

Реализация языка (транслятор) - это программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд.

Имеются два основных вида средств реализации языка: компиляторы и интерпретаторы.

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

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

В принципе любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки Фортран, Си, Паскаль в основном компилируют, языки Бейсик и Лисп широко используют оба способа.

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

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

Машинно-ориентированные.

Машинно-ориентированные системы программирования имеют вход­ной язык, зависящий от особенностей построения определенной машины или семейства машин. Наиболее типичными представителями таких систем программирования являются системы символического кодирования и ассемблеры.

Ассемблеры.

В настоящее время широкое применение из машинно-ориентирован­ных языков нашел язык ассемблера. Как правило, в языке ассемблера существует четыре типа операторов:

1) мнемоническая команда - соответствует одной машинной команде, в ней вместо машинных кодов операций используются мнемонические обозначения;

2) псевдокоманда - служит для передачи информации программе-транслятору и не порождает команд на машинном языке;

3) макрокоманда - соответствует нескольким машинным командам;

4) условная команда ассемблера - используется для управления процессом трансляции.

Под ассемблером понимают транслятор, выполняющий перевод программы, записанной на языке ассемблера, на машинный язык.

Машинно-независимые.

Машинно-независимые системы программирования строятся на основе процедурно-ориентированных и проблемно-ориентированных языков.

Процедурно-ориентированные.

Процедурно-ориентированные системы в отличие от машинно-ориентированных в качестве входного языка программирования используют различные языки, не зависящие от конкретных ЭВМ. Эти языки, построенные по принципу "один к нескольким", отличаются тем, что полностью освобождают программиста от записи машинных программ.

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

Проблемно-ориентированные.

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

Примерами подобных систем могут служить средства генерации отчетов, сортировок, системы с применением табличных языков и другие. В задачу программиста при работе с генератором отчетов (например, на языке QBE) входит задание информации о структуре и местонахождении входного массива информации, формате и структуре требуемого отчета. При этом алгоритм получения отчета не описывается.

Среди проблемно-ориентированных систем все большее значение приобретают непроцедурные (описательные) способы, ориентированные на «нетрадиционные» применения вычислительной техники: использование естественного языка, построение банков данных и баз знаний, создание экспертных систем и т. п., которые принято относить к проблематике искусственного интеллекта.

Наиболее известными из непроцедурных языков являются SQL-подобные языки, а также язык ПРОЛОГ. Программа, написанная на них, не содержит формул, предписаний, что сделать для получения результата. Программа констатирует, какой результат желателен, однако не указывает как этого достичь, Иными, словами, программа описывает не, процедуру решения задачи, а логическую модель предметной области - некоторые факты относительно свойств предметной области и отношений между этими свойствами, а также правила вывода новых свойств и отношений из уже заданных.

Табл.3

Смысл объекта Вид представления Место хранения Язык Имя хранения Название объекта   Алгоритм Блок-схема в тетради Язык -графический Имя алгоритма блок-схема задачи   Программа текст в тетради на языке Си Имя программы текст программы
         
Программа Файл на диске на языке машкод имя.exe загрузочный модуль   Программа Файл на диске на языке машкод имя.obj объектный модуль   Программа Файл на диске на языке Си имя.cpp исходный модуль
         
Результаты Числа и текст на экране или в файле На русском языке   Исходные данные Числа и текст Ввод с клавиатуры или из файла На русском языке   Стандарт-е функции Объектный модуль на диске на языке машкод .lib,.obj Библ.станд.функций

 

2. Основные понятия языка Си++.

История создания.

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

Самым первым в ряду предшественников Си следует считать язык Алгол-60, разработанный в 1960 г. Международным комитетом. В Алголе впервые большое внимание было уделено модульной структуре программы. На базе Алгола в 1963 году возник язык CPL (Conbined Programing Language - комбинированный язык программирования) - совместная разработка Кембриджского и Лондонского университетов.

Язык BCPL, созданный Мартином Ричардом в 1967 г., был получен выделением из CPL его основных свойств. Ещё большее упрощение представлял собой язык В (1970 г Кен Томпсон, Bell Laboratories). Но экономия средств языков BCPL и В привела к тому, что они стали ограниченными, пригодными только для узкого круга задач.

Язык Си был создан в 1972 г Денисом Ритчи (Bell Laboratories) как инструментальное средство операционной системы UNIX. Достижением при разработке языка Си было восстановление потерянной общности за счёт удачной системы типов данных, но без потери простоты, что и было целью разработки языка CPL.

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

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

2.2

Алфавит.

Предложения любого языка пишутся на основе некоторого алфавита, т.е. набора символов, используемых для записи инструкций языка, которые компилятор переводит в машинный код. В С++ к алфавиту относятся все буквы латинского алфавита, цифры от 0 до 9, символы кириллицы и специальные символы, а именно все, которые есть на клавиатуре ЭВМ, в частности:.,;: ' "? / * + - _! @ & { } () [ ] и др. Необходимо отметить, что компилятор языка С++ отличает большие и маленькие буквы латинского алфавита.

Структура программы.

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

Комментарии в C++ предназначены для удобства чтения программы и содержат пояснения к тексту инструкций. Они игнорируются транслятором и обозначаются в программе следующими символами:

¨ // в любом месте строки, действителен до конца строки

¨ /* в начале комментария и */ в конце, действителен в любом месте текста

Операторы языка делятся на исполняемые и неисполняемые. Неисполняемые содержат дополнительные инструкции компилятору для перевода текста в машинный код. Эти инструкции отсутствуют в exe-модуле. Исполняемые операторы непосредственно переводятся в машинный код.

Операторы состоят из лексем - наименьших единиц языка, несущих смысловую нагрузку. В Си существует 6 классов лексем: идентификаторы, ключевые слова, константы, строковые константы, операции и разделители (пробелы, табуляции и некоторые другие).

Основными видами операторов, определяющих структуру программы, являются:

¨ директивы препроцессора;

¨ объявления функций;

¨ описания переменных - (для хранения данных);

¨ описания (определения) функций - (описывают вычисления);

 

Сразу напишем пример программы.

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

#include <io stream.h> // Директива препроцессора

float pl (float a, float b); //Объявление (прототип) функции pl()

   // Описание функции main

имя
void main()                        // Заголовок описания функции main

{

float katet 1, katet 2; // описание переменных

cout << "Введите катеты (в см): ";        // Инструкции,

cin >> a, b;                      // описывающие

cout << "Площадь треугольника ="         // действия

  << Pl (katet 1, katet 2) << "см*см\n";

}

                 // Описание функции pl()

/**** Расчет площади прямоугольного треугольника ***********

****по его катетам a и b. Возвращает площадь ********/



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2020-12-09; просмотров: 59; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.255.127 (0.169 с.)