Главная страница

Язык Си. Алгоритм Свойства алгоритма дискретность состоит из отдельных шагов (команд) понятность


Скачать 4.66 Mb.
НазваниеАлгоритм Свойства алгоритма дискретность состоит из отдельных шагов (команд) понятность
Дата05.02.2023
Размер4.66 Mb.
Формат файлаppt
Имя файлаЯзык Си.ppt
ТипПрограмма
#921318
страница2 из 11
1   2   3   4   5   6   7   8   9   10   11

Порядок выполнения операций






    z = (5*a+c)/a*(b-c)/ b;


    x =(5*c*c-d*(a+b))/((c+d)*(d-2*a))


    1 2 4 5 3 6


    2 3 5 4 1 10 6 9 8 7





Ручная прокрутка программы


main()
{
int a, b;
a = 5;
b = a + 2;
a = (a + 2)*(b – 3);
b = a / 5;
a = a % b;
a++;
b = (a + 14) % 7;
}


a


b


5


7


28


5


3


4


4


?


?

Вывод на экран





int a = 1, b = 3;
printf("%d+%d=%d", a, b, a+b);


список вывода


    элементы списка разделяются запятыми форматы вывода начинаются с %
    выражения (элементы без кавычек) вычисляются и выводится их результат


1+3=4


Что будет выведено?


?


формат вывода

Что будет выведено?





int a = 1, b = 3;
printf("a+%d=a+b", b);


a+3=a+b


int a = 1, b = 3;
printf("%d=F(%d)", a, b);


1=F(3)


int a = 1, b = 3;
printf("a=F(%d);", b);


int a = 1, b = 3;
printf("%d>%d!", a+b, b);


int a = 1, b = 3;
printf("F(%d)=X(%d)", b, a);


a=F(3);


4>3!


F(3)=X(1)

Как записать оператор вывода?





int a = 1, b = 3
printf("X(%d)=%d", b, a);


X(3)=1


4=1+3


f(1)>f(3)


<1<>3>


1+3=?


int a = 1, b = 3
printf("%d=%d+%d",a+b,a,b);


int a = 1, b = 3
printf("f(%d)>f(%d)", a, b);


int a = 1, b = 3
printf("<%d<>%d>", a, b);


int a = 1, b = 3
printf("%d+%d=?", a, b);


Тема 3. Ветвления





Разветвляющиеся алгоритмы


Задача. Ввести два целых числа и вывести на экран наибольшее из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).


Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.





Вариант 1. Блок-схема


начало


max = a;


ввод a,b


вывод max


a > b?


max = b;


конец


да


нет


полная форма ветвления


блок «решение»


Если a = b?


?





Вариант 1. Программа


main()
{
int a, b, max;
printf("Введите два целых числа\n");
scanf("%d%d", &a, &b );
if (a > b) {
}
else {
}
printf("Наибольшее число %d", max);
}


max = a;


max = b;


полная форма условного оператора





Условный оператор


if ( условие )
{
// что делать, если условие верно
}
else
{
// что делать, если условие неверно
}


Особенности:
    вторая часть (else …) может отсутствовать (неполная форма)
    если в блоке один оператор, можно убрать { }





Что неправильно?


if a > b {
a = b;
}
else
b = a;


if ( a > b ) {
a = b;
else
b = a;


if ( a > b )
else
b = a;


if ( a > b )
a = b;
c = 2*a;
else
b = a;


}


(


)


}


{


a = b;





Вариант 2. Блок-схема


неполная форма ветвления


начало


max = a;


ввод a,b


вывод max


max = b;


конец


да


нет


b > a?





Вариант 2. Программа


main()
{
int a, b, max;
printf("Введите два целых числа\n");
scanf("%d%d", &a, &b );
max = a;
if (b > a)
printf("Наибольшее число %d", max);
}


max = b;


неполная форма условного оператора





main()
{
int a, b, max;
printf("Введите два целых числа\n");
scanf("%d%d", &a, &b );
max = b;
if ( ??? )
???
printf("Наибольшее число %d", max);
}


Вариант 2Б. Программа


max = a;


a > b





Задания


«3»: Ввести два числа и вывести их в порядке возрастания.
Пример:
Введите два числа:
15 9
Ответ: 9 15
«4»: Ввести три числа и найти наибольшее из них.
Пример:
Введите три числа:
4 15 9
Наибольшее число 15





Задания


«5»: Ввести пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56


Тема 4. Сложные условия





Сложные условия


Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.


Можно ли решить известными методами?


?





Вариант 1. Алгоритм


начало


ввод x


'подходит'


конец


да


нет


x >= 25?


да


нет


x <= 40?


'не подходит'


'не подходит'





Вариант 1. Программа


main()
{
int x;
printf("Введите возраст\n");
scanf("%d", &x);
if (x >= 25)
if (x <= 40)
printf("Подходит");
else printf("Не подходит");
else
printf("Не подходит");
}





Вариант 2. Алгоритм


начало


ввод x


'подходит'


да


нет


x >= 25 и
x <= 40?


'не подходит'


конец





Вариант 2. Программа


main()
{
int x;
printf("Введите возраст\n");
scanf("%d", &x);
if ( x >= 25 && x <= 40 )
printf("Подходит");
else printf("Не подходит");
}


сложное условие





Сложные условия


Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций:
    ! – НЕ (not, отрицание, инверсия)
    && – И (and, логическое умножение, конъюнкция, одновременное выполнение условий)
    || – ИЛИ (or, логическое сложение, дизъюнкция, выполнение хотя бы одного из условий)

    Простые условия (отношения)
    < <= > >= == !=

равно


не равно





Сложные условия


Порядок выполнения сложных условий:
    выражения в скобках
    ! (НЕ, отрицание)
    <, <=, >, >=
    ==, !=
    && (И)
    || (ИЛИ)

    Пример:

    2 1 6 3 5 4
    if ( !(a > b) || c != d && b == a)
    {
    ...
    }





Истинно или ложно при a = 2; b = 3; c = 4;
    !(a > b)
    a < b && b < c
    !(a >= b) || c == d
    a < c || b < c && b < a
    a > b || !(b < c)

    Для каких значений x истинны условия:

    x < 6 && x < 10
    x < 6 && x > 10
    x > 6 && x < 10
    x > 6 && x > 10
    x < 6 || x < 10
    x < 6 || x > 10
    x > 6 || x < 10
    x > 6 || x > 10


Сложные условия


1


1


0


(-, 6)





(6, 10)


(10, )


(-, 10)


(-, 6)  (10,)


(-, )


(6, )


x < 6


x > 10


x < 10


x > 6


1


1





Задания


«3»: Ввести три числа и определить, верно ли, что они вводились в порядке возрастания.
Пример:
Введите три числа:
4 5 17
да
«4»: Ввести номер месяца и вывести название времени года.
Пример:
Введите номер месяца:
4
весна





Задания


«5»: Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом «год», «года» или «лет».
Пример:
Введите возраст: Введите возраст:
24 57
Вам 24 года Вам 57 лет


Тема 5. Циклы

1   2   3   4   5   6   7   8   9   10   11


написать администратору сайта