(МВ) Для трансляторов языка 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.