В классе

В классе и дома решите все задачи.

Весь код можно писать внутри функции int main(){}. Свои функции создавать не обязательно. Динамической памятью пользоваться не надо.

Вам понадобятся функции printf для печати в консоль текста. Функция scanf для ввода чисел из консоли. Когда пользователь нажимает на Enter число считается введёным.

Примеры

Для начала попробуйте скопировать и запустить эти примеры. Можете использовать онлайн компиляторы из раздела Инструменты . А можете открыть любой текстовый редактор, вставить туда код из примера, сохранить его с расширением .c и скомпилировать компилятором gcc: gcc main.c -o main.out и запустить программу из консоли ./main.out.

  1. Написать программу, которая считывает число с консоли и выводит на экран значение функции N*N.
// Подключаем заголовочный файл для работы функций ввода-вывода информации
#include <stdio.h> // чтобы работала печать в консоль printf.

// Пример простой задачи.
// Все программы на Си начинают свое выполнения с запуска функции main.
// Она обязана возвращать int число - код возврата.
// Код возврата 0, даёт понять Операционной системе, что программа выполнилась успешно
// Другие коды возврата означают ошибки для ОС.
// Функция main может принимать на вход аргументы, но нам это пока не надо, 
// поэтому в круглых скобках написано void, что значит, что аргументов нет.
int main(void) {
  int n; // объявляем переменную с именем n типа int.
  // Что лежит в переменной n сейчас?
  // Правильный ответ: мусор.
  printf("Enter a number\\n");
  scanf("%d", &n); // магическая функция для ввода числа. Обратите внимание на знак & перед именем переменной. Мы обсудим это позже на лекциях.
  // тут показывается, как пользоваться функцией printf, 
  // которая осуществляет форматированный вывод.
  printf("f(x) = x^2 = %d^2 = %d\\n",n, n*n);
}

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

// Подключаем заголовочный файл для работы функций ввода-вывода информации
#include <stdio.h>
// С функции main() начинается выполнение программы
int main(void) {
  // Определяем переменную, в которую будет записываться число
  int a;
  // Приглашаем ввести число с клавиатуры
  printf("Введите a: ");
  scanf("%d",&a);
  //Проверяем число на четность и выводим соответствующие сообщения
  // Оператор % - это взятие остатка от деления
  // Кстати, оператор / делит нацело если оба числа целые
  if (a % 2 == 1) { //можно написать просто if(a % 2)- результат не изменится
    printf("нечётное число\\n");
  } else {
    printf("чётное число\\n");
  }
  //Завершаем программу
  return 0;
}

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

#include<stdio.h>

int main(void) {
  int a; // очередной элемент последовательности
  // Организуем цикл for, определяя параметр цикла (переменная int i)
  // внутри самого оператора for;
  
  for(int i=0; i<=25; i++) {
    a = i*i;
    printf("%d^2 = %d\\n",i,a);
  }

  return 0;
}

Написать программу, вычисляющую сумму первых n элементов последовательности, определяемую соотношениями

$$ a_1 = 2, a_{i+1} = a_{i}^2 $$

#include<stdio.h>

int main(void) {
  int a = 2; // первый элемент последовательности
  int s = 0; // переменная для хранения значения суммы
  int n; // переменная, в которую будет заноситься количество слагаемых
  
  // Организуем ввод n
  printf("Введите количество элементов последовательности: ");
  scanf("%d",&n);
  
  for (int i=1; i<=n; i++){
    a = a*a;// вычисляем следующий элемент последовательности
    s = s+a;// добавляем новый элемент к сумме
  }

  // Выводим значение суммы
  printf("Сумма равна %d\\n",s);
  return 0;
}

Написать программу, которая скопирует один массив размера 5 в другой массив в обратном порядке и каждое число умножить на 10.

#include<stdio.h>

// Пример со статическим массивом
int main(void) {
  int x[] = {1,2,3,4,5}; // создали массив и заполнили его числами сразу. Его размер будет равен количеству чисел в блоке инициализации в фигурных скобках.
  int y[5]; // создали массив из 5 элементов. Он заполнен мусором.

  for (int i = 0; i < 5; i++) {
    y[i] = 10*x[4-i]; // почему тут 4??? хммм. Странно то как.
  }

  for (int i = 0; i<5;i++) {
    printf("%d ", y[i]);
  }
  printf("\\n");
}

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

#include<stdio.h>

// Пример со статическим массивом
int main(void) {
  int x[10]; // выделили память на массив размера 10.
  // кстати, в квадратных скобках может быть записана ТОЛЬКО константа.
  // то есть обыкновенная переменная там быть не может. 
  // Это связанно с особенностью выделения памяти на стеке. 
  // С этим разберемся на лекции

  for (int i = 0; i < 10; i++) {
    scanf("%d", &x[i]);
  }

  // проверим, что он сохранил числа
  for (int i = 0; i < 10;i++) {
    printf("%d ", x[i]);
  }
  printf("\\n");
}

Написать программу, которая вычисляет Евклидово расстояние между двумя точками в двумерном случае: