Раздел «Образование».FIVTLecturesTerm1Lecture1:
<<Лекции ФИВТ, 1-й семестр

Лекция 1. Предмет науки информатики. Язык Си++: структура программы и простейшие примеры программ.

Предмет науки информатики.

Важность лингвистики (языки программирования, языки описания данных, различные другие формальные языки как основной материал, с которым приходится работать программисту).

Особенности изучения информатики (аналогия с гуманитарными дисциплинами - изучение иностранного языка или культуры народа).

Методы преодоления сложности как основной предмет курса.

Что такое алгоритм?

Частный важный для нас случай (основной на первом курсе) - алгоритм как набор инструкций преобразования входных данных в выходные.

Описание алгоритма с помощью блоксхемы и с помощью кода (псевдокода или кода какого-либо ЯП). С помощью блок-схемы наглядней и красивее. Но умение понимать формальные языки и писать на них важнее, и как показывает практика, универсальнее.

Коротко о множестве алгоритмически вычислимых задач. Упоминание о существовании невычислимых задач. Невычислимость - это важная сложность, которую тоже можно преодолевать - приближенные / неточные(с вероятностью ошибки) решения. Ссылка на курс "Математическая логика и теория алгоритмов", где изучается понятие вычислимости.

Язык Си

Структура программы на С++. Простые алгоритмические задачи и их реализации на Си: 1) a+b; 2) поиск максимального элемента. Типы int и unsigned int. Диапазоны чисел представимые эти типом. Дополнительный код.

Коротко о компиляции и о различии программы на С++ и получаемого в результате компиляции запускаемого файла.

Блоксхемы структурных операторов

Рассмотренные коды:

Код 1.1. Сумма двух введённых чисел

#include <stdio.h>
int main() {
  int a, b;
  scanf("%d%d", &a, &b);
  printf("%d\n", a + b);
  return 0;
}

Пояснения:

Код 1.2. Максимум из введенных целых чисел, количество которых дано на входе в первой строке

#include <stdio.h>
int main() {
  int n, a, m, i;
  scanf("%d", &n);
  scanf("%d", &m);
  for (i = 0; i < n -1 ; i++) {
    scanf("%d", &a);
    if ( m < a ) {
      m = a;
    }
  }
  printf("%d\n", m);
  return 0;
}

Выражение i++ то же самое, что и команда i = i + 1, которая увеличивает значение ячейки i на 1. Это выражение имеет значение (которое здесь не используется) - значение переменной i до увеличения на 1.

Код 1.3. Максимум из произвольного количества введенных целых чисел.

#include <stdio.h>
int main() {
  int n, a, m, i;
  scanf("%d", &m);
  while ( scanf("%d", &a) == 1 ) {
    if ( m < a ) {
      m = a;
    }
  }
  printf("%d\n", m);
  return 0;
}

Задание на семинар

Важные ссылки