Главная :: Рассылки :: Бесплатные программы. Обзоры. Программирование #8
Понаставили "Линуксов" нормальному "Виндоусу" упасть негде...

Бесплатные программы. Обзоры. Программирование #8

Здравствуйте, уважаемые подписчики!

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

Вам срочно нужно решить задачу, но нет соответствующей программы? Мы собрали основные свободные и открытые программы вместе. Вы можете загрузить обновленный (от 19.04.2009) список всех бесплатных и свободных программ, представленных на нашем сайте.

Хотите получать полезную информацию каждую неделю прямо на почтовый ящик? Посмотрите все наши рассылки. Каждый найдет для себя что-то интересное и полезное. Выпуски выходят раз в неделю в воскресенье.

Аудиокниги на английском для детей

Продолжаем анонсировать аудиокниги на английском для детей.

Игры

  • Battle for Wesnoth 1.6.1 - пошаговая стратегия в фэнтези мире. Версия под ОС Windows и GNU/Linux.

Математика

  • Scilab 5.1.1 - численное моделирование. Версия под ОС Windows и GNU/Linux.
  • GNU Octave 3.0.5 - численное моделирование. Версия под ОС Windows и GNU/Linux.

Программирование

  • R 2.9.0 - язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU. Версия для Windows и GNU/Linux.

Программирование в Си. Урок #3.

В этом уроке рассмотрим основные управляющие конструкции Си.

Условный оператор if ... else. Форма оператора следующая:

if ( условие )
  оператор1
else
  оператор2

Если условие истинно, то выполнятся первый оператор, иначе второй. Если в условии отрабатываются несколько операторов, то они помещаются фигурные скобки. Вторая часть (else) может опускаться если нам не нужно обрабатывать ложное условие. Допускается вложение условных операторов. При сравнении на равенство необходимо помнить, что a = b пишется как a == b (двойное равно, иначе мы получим присваение, т.е. a пример значение равное b). Другие операции сравнения: больше (>), меньше (<), не равно (!=), логическая операция И (&&), логическая операция ИЛИ (||).

Пример на Си (запустите для различных значений переменных a и b):

// Условный оператор - поиск минимального из двух чисел
printf("Минимальное из значений %i и %i равно ", a, b);
int a = 1;
int b = 2;
if ( a < b )
  printf("%d", a);
else
  printf("%d", b);
if ( a == b )
  printf(" (оба числа одинаковые)");
printf("\n");

Далее рассмотрим структуры цикла.

Итерационный цикл - цикл управляемый счетчиком.

Структура следующая:

for ( инициализация; условие; операция ) {
  операторы
}

Первый параметр инициализирует счетчик, второй - условие при истиности которого выполняются операторы, третий - операция выполняемая перед новой итерацией.

Рассмотрим на примере вычисления факториала числа:

printf("вычисление факториала\n");
const int N = 5;
int i, f = 1;
for (i = 1; i <= N; i++) {
  f *= i;
  printf("%d! = %d\n", i, f);
}

В качестве операции в примере используется постфиксная форма интремирования (увеличение переменной на 1). Цикл повторяется до тех пор, пока i меньше или равно N. Операция f *= i (присваение с умножением) эквивалентна форме f = а * i.

Цикл с предусловием - цикл управляемый условием.

Структура следующая:

while ( условие ) {
  операторы
}

Цикл выполняется пока условие истинно (условие проверяется в начале). Пример:

// Цикл с предусловием
printf("вычисление суммы чисел\n");
i = 0;
f = 0;
while (i < 5) {
  f += ++i;
  printf("S(%d) = %d\n", i , f);
}

Операция f += ++i эквивалентна двум операторам i++; f = f + i;

Цикл с постусловием - цикл управляемый условием.

Структура следующая:

do {
  операторы
} while ( условие )

Цикл выполняется пока условие истинно (условие проверяется в конце, т.е. тело цикла выпольняется по крайней мере один раз). Пример:

// Цикл с постусловием
printf("вычисление квадратов\n");
i = 0;
do {
  f = i * i;
  printf("%d^2 = %d\n", i, f);
  i++;
} while ( f < 25 );

Полный текст программы со всемы рассмотренными конструкциями:

#include "stdio.h"

int main() {
int a = 1;
int b = 2;

// Условный оператор - поиск минимального из двух чисел
printf("Минимальное из значений %i и %i равно ", a, b);
if ( a < b )
  printf("%d", a);
else
  printf("%d", b);
if ( a == b )
  printf(" (оба числа одинаковые)");
printf("\n");

// Итерационный цикл
printf("вычисление факториала\n");
const int N = 5;
int i, f = 1;
for (i = 1; i <= N; i++) {
  f *= i;
  printf("%d! = %d\n", i, f);
}

// Цикл с предусловием
printf("вычисление суммы чисел\n");
i = 0;
f = 0;
while (i < 5) {
  f += ++i;
  printf("S(%d) = %d\n", i , f);
}

// Цикл с постусловием
printf("вычисление квадратов\n");
i = 0;
do {
  f = i * i;
  printf("%d^2 = %d\n", i, f);
  i++;

} while ( f < 25 );
return 0;
}

Благодарим за внимание. В следующем выпуске Вы ознакомитесь с новой информацией, оставайтесь с нами.