Чтение онлайн

на главную - закладки

Жанры

Конец холивара. Pascal vs C

Кривцов М. А.

Шрифт:

while (x!= y);

printf (“НОД=%d\n”, x);

getchar ;

return 0;

}

2.2.3. Цикл с параметром (со счётчиком)

Пример 2.6: Вычислить факториал числа (n!=1x2x3x…xn).

#include <stdio. h>

int main 

{

int f=1, k, n;

printf (“Введите

целое положительное число\n”);

scanf (”%d”, &n);

for (k=1; k <=n; k++)

f=f*k;

printf (“n!=%d\n”, f);

getchar ;

return 0;

}

Для этого цикла в Си Рис. 6 из части о Паскале даже более нагляден, чем там! Особенно, если заменить в этом операторе k++ на k=k+1, что его работы не изменит. Разве, что только незаметно замедлит, поскольку унарные операции выполняются быстрее бинарных.

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

В Си возможен, например, такой оператор цикла с параметром:

for (i=100; i>=10; i=i-5) {…};

Здесь переменная i уменьшается от 100 до 10 с шагом 5 и, соответственно, тело цикла в фигурных скобках будет выполнено 19 раз.

3. Функции

В C есть только функции, а процедур нет.

Тело функции не может содержать в себе определения других функций.

Функцию можно вызвать из другой функции.

Оператор return возвращает выполнение программы в точку вызова функции.

При использовании return; функция не возвращает никакого значения.

При использовании такого вида – return выражение; результатом функции становится значение данного выражения. Тип этого выражения должен либо совпадать с типом функции, либо относиться к числу типов, допускающих автоматическое преобразование к типу функции.

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

Глобальные переменные описываются до функций, которые их будут “видеть”.

Пример 2.7: Из главной функции вызывается функция вычисляющая факториал.

#include <stdio. h>

#include <stdlib. h>

int fakt (int n)

{

int f=1, k;

for (k=1; k <=n; k++)

f=f*k;

return f;

}

int main (void)

{

int n;

printf (“Введите

целое положительное число\n”);

scanf (”%d”, &n);

int f = fakt (n);

printf (“n! = %d\n”, f);

getchar ;

return 0;

}

4. Массивы и индексированные переменные

Пример описания одномерных массивов:

int x [15], y [30];

Пример описания двумерного массива:

float z [10] [20];

Нумерация элементов массива начинается с нуля.

Пример 2.9: Программа генерирует таблицу умножения и оформляет вывод результатов в матрицу 10 на 10 используя двумерный массив.

#include <stdio. h>

#include <stdlib. h>

int main (void)

{

int i, k;

int a [10] [10];

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

for (k=0; k <10; k++)

a [i] [k] = i * k;

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

{

for (k=0; k <10; k++)

printf (”%d%s%d%s%d\t”, i,”*”, k,”=”, a [i] [k]);

printf (”\n”);

}

getchar ;

return 0;

}

5. Заглянем в вычислительную математику

Метод половинного деления

Пример 2.10: Найти корень уравнения X2 – 3 = 0.

#include <assert. h>

#include <stdio. h>

#include <stdlib. h>

float fn (float x)

{

float y;

y = x*x – 3;

return y;

}

int main 

{

float a, b, e, x, y, y1;

printf (“Введите границы интервала и погрешность через пробел\n”);

int r = scanf (”%f%f%f”, &a, &b, &e);

assert (r == 3);

x = a;

y = fn (x);

y1 = y;

while (b – a> = e)

{

x = (a + b) /2;

y = fn (x);

if (y * y1> = 0)

Поделиться:
Популярные книги

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь