Схема получения рабочей программы (загрузочного модуля) из исходного текста программы




Для запуска программы на выполнение необходимо в среде программирования выбрать пункт меню "Run". При этом выполняется три операции: предкомпиляция, компиляция и компоновка. На рис. 1 показана схема получения загрузочного модуля из исходного текста программы prog1.c.

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

В процессе компиляции специальная программа – компилятор языка С просматривает исходный текст программы, проверяет его на наличие синтаксических ошибок (нарушений правил языка С). Если ошибки есть, то об этом выдаются соответствующие сообщения и компиляция прекращается. Если ошибок нет, то формируется объектный модуль программы (файл с расширением.obj), который представляет собой результат перевода операторов языка С в наборы машинных команд в двоичном коде.

На этапе компоновки специальная программа – компоновщик просматривает объектный модуль и определяет наличие вызовов стандартных функций, подключает необходимые библиотеки языка С (файлы с расширением.lib). В результате формируется загрузочный модуль – выполняемая программа (файл с расширением.exe), в который включены машинные коды из объектного модуля и необходимые стандартные функции из библиотек.

 

нет ошибок

Загрузочный модуль prog1.exe
Библиотеки языка С.lib
Препроцессор
Компоновщик
Объектный модуль prog1.obj
Компилятор языка C
Текст программы prog1.c

 

есть ошибки

 

сообщения об ошибках

Рисунок 1 – Схема получения загрузочного модуля из исходного текста программы

Пример простой программы на языке C

Ниже приведен исходный текст простой программы, составленной на языке C, в которой производится описание вещественного массива x из 20 элементов, вычисление значений его элементов, определение их среднего арифметического значения и вывод результатов на экран.

 

# include <stdio.h> /* Включение файла с описанием функций ввода-вывода */

# include <math.h> /* Включение файла с описанием математических функций */

# include <conio.h> /* Включение файла с описанием функций управления консолью*/

void main ()

{

int i;

float x[20], s;

clrscr();

printf(“ Массив X \n”);

for (i=0; i<20; i++)

{ x[i]=i*1.5*cos(2.1*i);

s+=x[i];

printf(“%.1f”,x[i]);
}
s/=20;
printf(“Среднее значение S=%.3f \n”,s);
getch(); /* Ожидание нажатия любой клавиши*/
}

Операторы языка С

Операторы предназначены для выполнения в программах различных операций: арифметических, логических, ввода, вывода.

 

Оператор присваивания

Данный оператор производит присвоение переменной, указанной в левой его части, значения выражения, стоящего в правой части оператора.

Формы записи оператора:

а) простой оператор

V = a;

где V – переменная;

= – операция присваивания (положить равным);

а – арифметическое выражение.

Примеры:

X = 1.8;

Y = 2.7*exp(sin(x + 5.1));

б) многоместный оператор

C = D = M = … = X = V = a;

x = a = f = 2.7; → x=2.7; a=2.7; f=2.7;

в) совмещенный оператор

v+ = a; → v = v + a;

v- = a; → v = v – a;

v* = a; → v = v * a;

v/ = a; → v = v / a;

v%= a; → v = v % a;

Примеры:

X+ = 0.5; → X = X + 0.5;

P* = y; → P = P * y;

Составной оператор

Используется для объединения нескольких операторов в один блок.

Форма записи:

{
оператор 1;
…………
оператор N;

}
Пример:
{
k++;

s+ =y;

}

Вывод данных на дисплей

Используется стандартная функция printf (…);

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

#include <stdio.h>

Форма записи:

printf (“ управляющая строка “, список вывода);

В управляющей строке записываются:

- форматы - % тип

- текст – записывается прямо в управляющей строке

- управляющие символы:

‘\n’ – перевод курсора на начало следующей строки;

‘\t’ - табуляция (курсор сдвигается вправо на 6 позиций)

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

printf (“…”, a, x, f, z);

Форматы данных

1. Для целых значений (чисел):

%d – десятичное число с знаком

%u – десятичное число без знака (положительное)

%o – восьмеричное число

%x – шестнадцатеричное число

2. Для вещественных чисел:

%f – вещественное число с точкой xxx.yyy

%e – вещественное число с порядком xxx.yyyE±pp

%g – вывод по формату %f или %e (автоматически)

3. Для символьных значений

%c – один символ

%s – строка

Пример:

Описания: int n = -125;

unsigned k = 10;
float t = 29.361, v = -3.692E-5;

char q = ‘!’, mc[10] = “компьютер”;

Вывод: printf (“ Исходные данные: \n”);

printf (“ n = %d k = %u t = %f \n”, n, k, t);

printf (“ v = %e q = %c mc = %s \n”, v, q, mc);

Получим на экране:

Исходные данные:

n = -125 k = 10 t = 29.361000

v = -3.692000E-05 q =! mc = компьютер



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: