Литералы.

(МВ) Для трансляторов языка C, в которых не предусмотрены логические данные, разумно ввести в программу логические литералы.

#define TRUE 1

#define FALSE 0

Не следует забывать, что логические данные в программе на языке Basic занимают в памяти 2 байта, значения хранятся в виде true (-1), false (0), а на языке C они занимают в памяти 1 байт и хранятся в виде true (1), false (0).

(В) Старайтесь избегать в тексте программы литералов, заменяйте их символическими константами с помощью директивы #define (язык C).

4. (В) Массивы.

Для языка C следует отметить такие особенности.

Если возможно изменение размеров массивов, определяйте их размеры с помощью директивы #define.

Пример.

#define PAZM 5

float Matrix[PAZM][PAZM];

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

В языке Basicдля массивов, размеры которых могут изменяться, при описании используется инструкция dim с пустыми скобками.


Пример.

Dim Matrix( ) As Single

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

Пример.

ReDim Matrix(1 To 10, 1 To10)

Такая инструкция в теле процедуры может использоваться многократно. Более подробно синтаксис и область применения инструкции redim будет изложена ниже.

5. (ОВ) В языке C необходимо помнить об особенностях операторов деления / и остатка %при работе с целыми операндами. При делении целого на целое результат всегда целый. Оператор % используйте только для целых операндов.

6. (В) Для логических операторов && и || в языке C вычисление выражения прекращается, как только результат определен, а для аналогичных операторов andи orв языке Basic проверяются оба операнда.

Пример.

Выражение i<100 && x[ i ]<0 при i=100 в языке Cпримет значение false и выполнение программы продолжится, тогда как в языке Basicвычисление выражения i<100 and x( i )<0 при тех же условиях вызовет ошибку: Subscript out of range (Индекс вне диапазона), поскольку элемента массива x(100) не существует.

7. (ОВ) В языке Cпри использовании библиотечных функций не забудьте включить файл прототипов.

Пример.

#include <stdio.h>

#include <math.h>

8.(В) Не забывайте об удобных возможностях языка С: многократном присваивании, операторах: ++ -- <знак>=.

9. (ОВ) Ввод-вывод (C):

- при вводе информации функцией scanf в списке данных необходимо использовать оператор нахождения адреса &;

- не забывайте заканчивать ввод данных инструкции scanf клавишей Enter;

- не забывайте заканчивать управляющую строку инструкции printf символом '\n' (перевод на новую строку);

- при неизвестном диапазоне выводимых значений данных с плавающей точкой используйте спецификацию g.