Раздел «Язык Си».C_Progr1:

Первая программа.

Текст программы и выполнение.

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

Будем использовать язык С для программ.

Прогамма печатает текст

// Этот текст нужно писать
// Зачем он нужет будет понятно позже
#include <stdio.h>
#include <stdlib.h>

// Компьютер будет выполнять команды, если
// будет main
// между {} - будет текст программы
int main(){
// Печать приветствия
 printf("Ура! Начали!!");;

// Длинный текст, который хотим напечатать
// всегда должен быть в ""    

}

Перевод текста программы в команды для компьютера

Сохраним текст с именем prog1.c. Вызовем специальную программу gcc - компилятор. Она переведет текст в команды компьютера.

>gcc prig1.c

Если нет ошибок, появится файл a.out - это программа, которую можно запускать.

Запустим.

>./a.out
"Ура! Начали!!"

Видим результат работы программы - текст на экране.

Вычисления

Для вычислений нужны числа. Числа помещают в память компьютера. Каждое число помещают в свое место. Каждое место имеет имя и тип числа. Могут быть целые числа, дробные числа.

REFACTOR Задача

Даны две стороны прямоугольника (целые числа). Нужно вычислить периметр и площадь этого прямоугольника.

Решение для периметра

#include <stdio.h>
#include <stdlib.h>

// Начало программы 
int main(){
  // int - тип числа, а - название места 
  int a;        // место для одной стороны 
  int b;        // место для второй стороны
  int perimetr; // место для периметра

   // Значения для a и b:
   a = 10;
   b = 22;
   // Вычислим периметр, 
   // +  сложение
   // *  умножение
   // -  минус (разность)

  perimetr = ( a + b ) * 2;
 
   // Печать периметра
   printf("периметр равен %d", perimetr);
   // вместо %d будет печать числа из perimetr
     
}

REFACTOR Задача 1

Вычислить и напечатать площадь прямоугольника. Место для хранения (переменную) площади назвать s.

Не забываем вызвать программу gcc для перевода (компиляции) текста программы в машинные команды (код)

Деление целых чисел

При делении целых чисел получаются целые числа. Для деления есть два оператора:

  1. / результат деления (30 / 4 -> 7)
  2. % остаток от деления (30 % 4 -> 2)

REFACTOR Задача про метры

Расстояние измерили в метрах. Нужно напечатать его в километрах и метрах. Например, 2 км 350 м.

Решение. В километре 1000 метров.

#include <stdio.h>
#include <stdlib.h>

// Начало программы 
int main(){
   // int - тип числа, dimension - название переменной
   int dimension; // измеренная величина (в метрах) 
   int km;        // для километров
   int metr;      //для метров

   // Пусть программа получает значение dimension
   // когда будет работать с клавиатуры
   // %d означает, что мы будем печатать целое число
   // а   &dimension  - куда его поместить (записать)
   // & нужно писать перед переменной в scanf
   scanf("%d",&dimension);
  
   // Вычислим сколько получилось км, 
   km = dimension / 1000;
 
   // Вычислим сколько получилось метров, 
   metr = dimension % 1000;

   // Печать расстояния
   printf("расстояние - %d км %d м",km, metr);
   // вместо первого %d будет печать числа в первой переменной (km),
   // а вместо второго %d - печать второй переменной (metr)
}

Компилировать программу и запустить

REFACTOR Задача 2. Скорость

Машина ехала со скоростью z км/час. Напечатать эту скорость в м/сек

REFACTOR Задача 3. Автомобиль и велосипед

Между городами A и В N км. Из города A выехал автомобиль со скоростью avto км/час, Одновременно с ним из города B по той же дороге навстречу выехал велосипедист со скоростью velo м/сек.

Написать программу, чтобы вычислить на каком километре от города A они встретятся.

REFACTOR Задача 4. Часы

Часы показывают часы и минуты. Циферблат на 24 часа.

Человек вышел из дома, когда часы показывали h1 часов и min1 минут. Он вернулся через h2 часов и min2 минут.

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

REFACTOR Задача 5. Число

Дано шестизначное число (XXXXXX).

Написать программу, которая печатает сумму цифр этого числа.

REFACTOR Задача 6 (*). Царь

В государстве R в неделе - 7 дней, в месяце 28 дней, в году 13 месяцев, а в веке - 30 годов.

Царь родился в N веке, G году, M месяце, на W неделе и в D день

Сейчас в государстве N1 век, G1 год, M1 месяц, на W1 неделя и D1 день

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

-- TatyanaOvsyannikova2011 - 09 Mar 2016