Лекция 1 - Основы программирования

Содержание

Слайд 2

Данные и алгоритмы

Алгоритм + Структура данных = Программа

Данные и алгоритмы Алгоритм + Структура данных = Программа

Слайд 3

Информация

Информация – уменьшение степени неопределенности знания
Информация и содержание
Сопоставление информации реальным объектам называется

Информация Информация – уменьшение степени неопределенности знания Информация и содержание Сопоставление информации
кодировкой
Информация – дискретна

Слайд 4

Единицы измерения информации

Минимальная единица – 1 бит (два дискретных состояния)
1 байт –

Единицы измерения информации Минимальная единица – 1 бит (два дискретных состояния) 1
8 бит (256 состояний, использовался для представления одного символа)
1 слово – 2-4-8 байт, в зависимости от компьютера
Производные единицы
1К =1024 байта
1М=1024К=1 048 576 байт
1Г= 1024М = 1 073 741 824 байт

Слайд 5

Компьютерные модели данных

Целые числа (8-16-32-64 бита, знаковые/беззнаковые)
Адреса (обычно 32 бита, те же целые числа)
Символы (8-16

Компьютерные модели данных Целые числа (8-16-32-64 бита, знаковые/беззнаковые) Адреса (обычно 32 бита,
бит, те же целые числа)
Вещественные числа (32-64-80 бит, мантисса+экспонента)

Слайд 6

Структуры данных

Скалярные типы данных
Целочисленные
Вещественные
Символьные
Логические
Массивы
Структуры
Объекты

Структуры данных Скалярные типы данных Целочисленные Вещественные Символьные Логические Массивы Структуры Объекты

Слайд 7

Алгоритм

Последовательность действий
Конечная
Однозначно трактуемая
Описание алгоритма
На естественном языке
Графическое (блок-схемы)
Алгоритмический язык

Алгоритм Последовательность действий Конечная Однозначно трактуемая Описание алгоритма На естественном языке Графическое (блок-схемы) Алгоритмический язык

Слайд 8

Блок-схемы

Блок-схемы

Слайд 9

Пример блок-схем

Пример блок-схем

Слайд 10

Языки программирования

Универсальные
С/С++
C#
FORTRAN
PASCAL
BASIC
LISP
PROLOG

Специализированные
HTML
JavaScript
SQL
UNIX-shell
VBA
VBScript
PHP

Языки программирования Универсальные С/С++ C# FORTRAN PASCAL BASIC LISP PROLOG Специализированные HTML

Слайд 11

Алгоритмические языки

С/С++
C#
Pascal/Delphi
Visual Basic
Java

Алгоритмические языки С/С++ C# Pascal/Delphi Visual Basic Java

Слайд 12

Развитие языков программирования

1960-е Fortran, Algol, Basic, Cobol, Lisp
1970-е Pascal, C, Simula, Smalltalk,

Развитие языков программирования 1960-е Fortran, Algol, Basic, Cobol, Lisp 1970-е Pascal, C,
Prolog
1980-е C++, Object Pascal, Ada, Occam
2000-е C#

Слайд 13

Уровень абстракции языка

Ассемблер
Fortran
C
Pascal
C++
C#

Уровень абстракции языка Ассемблер Fortran C Pascal C++ C#

Слайд 14

Машинный код и язык ассемблера

00 61
01 62
02 10
03 53 06
05 18
06 41
07 50

LD 1
LD 2
ADD
GT

Машинный код и язык ассемблера 00 61 01 62 02 10 03
A
SGN
A: ST 1
STOP

Слайд 15

Трансляторы

Компилятор + компоновщик (С/С++, Pascal)
Интерпретатор (Basic, JavaScript, HTML)
Использование промежуточного языка и виртуальной машины (C#, Java)

Трансляторы Компилятор + компоновщик (С/С++, Pascal) Интерпретатор (Basic, JavaScript, HTML) Использование промежуточного

Слайд 16

Этапы компиляции программы

void main()
{ int a, b;
scanf(“%d”,&a);

Объектный файл

Программа

Другие
файлы
программы

Библиотеки
Компилятор

Редактор
связей

Этапы компиляции программы void main() { int a, b; scanf(“%d”,&a); Объектный файл

Слайд 17

Этапы разработки программ

Постановка задачи
Определение структур данных
Проектирование алгоритма
Кодирование
Отладка
Тестирование
Доводка

Этапы разработки программ Постановка задачи Определение структур данных Проектирование алгоритма Кодирование Отладка Тестирование Доводка

Слайд 18

Язык С

Лекция №1
Переменные, типы данных,
операция присваивания

Язык С Лекция №1 Переменные, типы данных, операция присваивания

Слайд 19

Пример программы

#include
/* Пример №1 – простейшая программа */
void main()
{
int year,

Пример программы #include /* Пример №1 – простейшая программа */ void main()
month;
year = 2011; month=10;
printf("Сейчас %d год", year);
}

Слайд 20

Идентификаторы и переменные

Идентификатор (имя) – последовательность букв и цифр, начинающаяся с буквы

Идентификаторы и переменные Идентификатор (имя) – последовательность букв и цифр, начинающаяся с
(регистр в С/С++ различается!)
Переменная – величина, изменяющая своё значение во время выполнения программы, обозначается идентификатором, всегда принадлежит какому-либо типу данных
Тип данных – множество значений, которое может принимать переменная (а также множество операций, применимых к ней)

Слайд 21

Целочисленные типы данных

Целочисленные типы данных

Слайд 22

Вещественные типы данных

0.1234567890123456∙10+15

Вещественные типы данных 0.1234567890123456∙10+15

Слайд 23

Описание переменных

int i, j;
float x;
double a,b,c;

Описание переменных int i, j; float x; double a,b,c;

Слайд 24

Запись непосредственных констант

Запись непосредственных констант

Слайд 25

Записи специальных констант

\n Новая строка
\r Возврат каретки
\t Горизонтальная табуляция
\" Кавычка
\' Апостроф
\\ Обратная косая черта
\0 Нулевой символ
\123 Символ с восьмеричным кодом

Записи специальных констант \n Новая строка \r Возврат каретки \t Горизонтальная табуляция
123
\xA1 Символ с шестнадцатеричным кодом A1

Слайд 26

Операция присваивания

n=1;
n=k*5;
n=n+1;
a=2.99792E+10;
x=a/1000.0
i=j=0; i=(j=0);

Операция присваивания n=1; n=k*5; n=n+1; a=2.99792E+10; x=a/1000.0 i=j=0; i=(j=0);

Слайд 27

Соответствие типов данных

Вообще говоря, тип переменной слева от знака присваивания должен соответствовать

Соответствие типов данных Вообще говоря, тип переменной слева от знака присваивания должен
типу выражения!
Но есть несколько исключений
Возможно явное приведение типов

Слайд 28

Автоматическое приведение типов

int i;
float x;
double y;
char c;

x = i; // Допустимо
i =

Автоматическое приведение типов int i; float x; double y; char c; x
x; // Предупреждение или ошибка
с = i; // Допустимо, но возможна потеря битов
x = y; // Допустимо, но будет потеря точности

Слайд 29

Явное приведение типов

int i;
float x;
double y;
char c;

x = (float) i;
i =

Явное приведение типов int i; float x; double y; char c; x
(int) x;
i = int(y);

Неверное понимание приведения типов – источник трудно выявляемых ошибок в программе

Слайд 30

Инициализация переменных

int i = 0, j = 0;
float x = 1.0;
double a,b,

Инициализация переменных int i = 0, j = 0; float x =
c = 2.718281828;

Использование неинициализированных переменных – источник трудно выявляемых ошибок в программе

Слайд 31

Бинарные операции

+ – сложение
– – вычитание
* – умножение
/ – деление
% – деление по модулю

Бинарные операции + – сложение – – вычитание * – умножение /

Слайд 32

Целочисленные арифметические выражения

n
25*n+3
25*(n+3)
n/2 – деление на цело! 5 / 2 = 2
n%2

Целочисленные арифметические выражения n 25*n+3 25*(n+3) n/2 – деление на цело! 5
– остаток от деления 5%2 = 1

Слайд 33

Унарные операции
– – унарный минус
++ – увеличение на единицу
– – – уменьшение на

Унарные операции – – унарный минус ++ – увеличение на единицу –
единицу

i=1;
j=i++; // j=1
k=++i; // k=3

Слайд 34

Вещественные арифметические выражения

x
25.0*x+3
25*(x+3.0)
x/2 – вещественное деление 5.0/2=2.5
2*sin(x)

Вещественные арифметические выражения x 25.0*x+3 25*(x+3.0) x/2 – вещественное деление 5.0/2=2.5 2*sin(x)

Слайд 35

Операции присваивания

Операции присваивания

Слайд 36

Примеры операций присваивания

x=a+(b=c–d++);
m*=2;
max = (x>y) ? x : y;
a=sin(x)*cos(y);
c=sqrt(2.0);

Примеры операций присваивания x=a+(b=c–d++); m*=2; max = (x>y) ? x : y; a=sin(x)*cos(y); c=sqrt(2.0);

Слайд 37

Приоритеты операций

Приоритеты операций

Слайд 38

Простейшая программа

#include
void main()
{ float R;
float L, S;
printf("Enter R ");

Простейшая программа #include void main() { float R; float L, S; printf("Enter
scanf("%f",&R);
L=3.1415926*2*R;
S=3.1415926*R*R;
printf("L=%f, S=%f",L,S);
}

Слайд 39

Функция printf

printf("Hello, World!\n");
printf("x=%f, y=%f\n",x,y);
printf("%05d", 15); // Выдаст 00015

Модификаторы l и h (L,

Функция printf printf("Hello, World!\n"); printf("x=%f, y=%f\n",x,y); printf("%05d", 15); // Выдаст 00015 Модификаторы
H) %ld – long int, %hu – short unsigned, %Lf – long double

Модификаторы точности %8.2F, %16E, %8d

Имя файла: Лекция-1---Основы-программирования.pptx
Количество просмотров: 42
Количество скачиваний: 0