
prog_lk4_new.pptx
- Количество слайдов: 57
Выражения
Правила преобразования 1) все переменные и константы типов char и short int преобразуются в int; 2) все переменные и константы типа float преобразуются в double; 3) для любой пары операндов: если один из операндов long double то и другой long double; если один из операндов double то и другой преобразуется в double; если один из операндов unsigned то и другой unsigned;
Явное указание типов
Явное указание типов Формат: (ТИП) ВЫРАЖЕНИЕ
Пример Пусть x переменная целого типа; для того, чтобы x/2 имело тип float достаточно записать: (float) x/2
Операторы
Оператор присваивания а) i=i+2; эквивалентно i+=2 б) x=x*(y+1); эквивалентно x*=y+1; a=b=c=x*y; в) многократное присваивание (выполняется справа налево)
Условные операторы а) if б) if - else в) switch
Операторы if и if-else Формат: if (выражение) оператор - 1; [ else оператор - 2; ];
false Выражение true Оператор s 1
!=0 =0 ВЫРАЖЕНИЕ true ОПЕРАТОР S 1 false ОПЕРАТОР S 2
Примеры а) if (a<0) y=a-3; if (x>0) && (x==1) y=sqrt(x); else y=1/x; б) в) if (a>=0) else y=a-3; if (a>b) z=a; else z=b; г)
//Программа 7 Вычисление площади треугольника по заданным длинам сторон a, b, c, #include <iostream> #include <conio. h> #include <math. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); float a, b, c; // длины сторон треугольника float p; // полупериметр float s; // площадь треугольника float coef=0. 5; int r; cout << «Введите длины сторон: n "; cout << "a = "; cin >> a; cout << "b = "; cin >> b; cout << "c = "; cin >> c; r=(a>0)&&(b>0)&&(c>0)&&(a+b>c)&&(a+c>b)&&(b+c>a); if(r) { p=coef*(a+b+c); s=sqrt(p*(p-a)*(p-b)*(p-c)); cout << «Площадь треугольника =" << s; } else cout << «Треугольник построить нельзя!"; while (!kbhit()); return 0; }
Пример Заданы три числа a, b, c. Напечатать “Да”, если равны хотя бы два числа и напечатать “Нет”, если нет равных чисел.
Вариант 1 #include <iostream> #include <conio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int a, b, c; cout << “Введите числа a, b, c: " << "na= "; cin >> a; cout << "b = "; cin >> b; cout << "c = "; cin >> c; if((a==b)&&(a==c)&&(b==c)||(a==b)||(a==c)||(b==c)) cout << «ДА"; else cout << “НЕТ"; while (!kbhit()); return 0; }
Вариант 2 #include <iostream> #include <conio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int a, b, c; cout << «Введите числа a, b, c: " << "na= "; cin >> a; cout << "b = "; cin >> b; cout << "c = "; cin >> c; if(a==b) cout << «ДА"; else if (a==c) cout << “ДА"; else if (b==c) cout << «ДА"; else cout << «НЕТ"; while (!kbhit()); return 0; }
Вариант 3 #include <iostream> #include <conio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int a, b, c, k; cout << “Введите числа a, b, c: " << "na= "; cin >> a; cout << "b = "; cin >> b; cout << "c = "; cin >> c; k=1; if (a==b) k=k+1; if (a==c) k=k+1; if (b==c) k=k+1; if (k>=2) cout << «ДА"; else cout << «НЕТ"; while (!kbhit()); return 0; }
Оператор switch - переключатель Формат: switch (выражение) { case константа 1 : оператор1 [break; ] case константа 2 : оператор2 [break; ] . [default : оператор] }
a m 1 m 2 mn s 1 s 2 sn
Пример Вычислить значение функции z, в зависимости от нажатой клавиши: a, то z=x+y; b, то z=x-y; c, то z=x*y; при вводе любого другого символа печатается фраза “Сравнение не найдено”.
начало q q ‘a’ z=x+y ‘b’ ‘c’ z=x-y z=x*y z конец default Сравнение не найдено
#include <iostream> #include <conio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int x=5, y=3, z; char q; cout << “Введите символ q: "; cin >> q; switch (q) { case 'a' : z=x+y; break; case 'b' : z=x-y; break; case 'c' : z=x*y; break; default : { cout << «Сравнение не найденоn"; goto end; } } cout << «Результат: n"; cout << "z=" << z; end: ; while (!kbhit()); return 0; }
Операторы цикла
• цикл с параметром for • цикл с предусловием while • цикл с постусловием do – while
Оператор for
Формат for (a; b; c; ) оператор; a - где выражение, определяющее начальное значение параметра цикла; условное выражение, определяющее условие окончания цикла; выражение, определяющее изменение параметра цикла; b - c -
Цикл for Инициализация false Условие true Тело цикла Изменение параметра цикла Выход из цикла
Пример for(x=1; x<=100; x++)
Примечания 1. Параметр цикла может уменьшаться for(x=100; x>0; x--) 2. Шаг параметра цикла может быть отличен от 1 for(x=0; x<=100; x=x+5)
Примечания 3. В начале цикла проверяется условие и если оно не выполняется, то операторы в теле цикла не выполняются: x=10; for (y=10; y!=x; ++y)
Примечания 4. Допускается запись двух и более параметров цикла for (x=0, y=0; x=y<100; ++x, ++y)
Примечания 5. В записи оператора цикла шаг может отсутствовать: for (x=0; x!=100) в этом случае параметр цикла не изменяется
Примечания 6. Допускается организация бесконечного цикла for (; ; )
Пример for (; ; ) { ch=getche(); /*извлечь символ */ if (ch==‘A’) break; /*выход из цикла*/ }
Оператор while (цикл с предусловием)
Формат while (условие) оператор;
Цикл while Инициализация false Условие true Тело цикла Изменение параметра цикла Выход из цикла
Оператор do - while
Формат do { составной оператор } while (условие);
Цикл do-while Инициализация Тело цикла Изменение параметра цикла true Условие false Выход из цикла
Дополнительные операторы • Оператор break • Оператор continue
// Программа 9. Вычислить s=1+2+3+. . . +n #include<conio. h> #include<iostream> #include <stdio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int s, n, i; cout << “Введите целое число n= "; cin >> n; s=0; for (i=1; i<=n; i++) s=s+i; cout << «Результат: " << endl; cout << "s= " << s << endl; } return 0;
// Программа 10. Вычислить y=n! #include<conio. h> #include<iostream> #include <stdio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int n, k, y; cout << “Введите целое число n= "; cin >> n; y=1; for (k=1; k<=n; k++) y=y*k; cout << «Результат: " << endl; cout << "y=n!= " << y << endl; } return 0;
// Программа 11. Вычислить сумму s=1! + 2! + 3! + … + n! для k значений n. #include<conio. h> #include<iostream> #include <stdio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int f, i, j, k, n, s; cout << “Введите целое число k= "; cin >> k; for (i=1; i<=k; i++) { cout << “Введите целое число n= "; cin >> n; s=0; f=1; for (j=1; j<=n; j++) { f=f*j; s=s+f; } cout << “Результат: " << endl; cout << " s= " << s << endl; } return 0; }
Программа 12 Вычислить значения функции y=x 2 с шагом h.
#include<conio. h> #include<iostream> #include <stdio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int x, y, x 1=1, x 2=10, h=1; cout << " x y" << endl; ; cout << "________" << endl; x=x 1; while (x<=x 2) { y=x*x; cout << " "<< x << " " << y << endl; x=x+h; } } return 0;
Программа 13 Вычислить сумму членов ряда s=1+1/2+1/3+… с точностью e.
#include<conio. h> #include<iostream> #include <stdio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); float s, f, e, n; cout << " Введите точность вычислений e= "; cin >> e; s=0; n=1; f=1/n; while (f>e) { s=s+f; n++; f=1/n; cout << " s= "<< s << endl; } cout << «Результат: " << endl ; cout << "n= " << n << " s= " << s << endl; return 0; }
Программа 14 Вычислить число pi, используя формулу Грегори pi/4= 1 -1/3+1/5 -1/7+… с точностью e.
Обозначения pi – сумма членов ряда; e – точность вычислений; n – номер члена ряда; f – текущий член ряда; c – знакопеременный коэффициент.
#include<conio. h> #include<iostream> #include <stdio. h> #include <math. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); float f, e, n, pi; int c; cout << “Введите точность вычислений e= "; cin >> e; pi=1; c=-1; n=1; f=1; while (fabs(f)>e) { f=c/(2*n+1); pi=pi+f; c=-c; n++; cout << " pi= "<< pi << endl; } cout << «Результат: " << endl ; cout << "n= " << n << " pi= " << pi*4 << endl; return 0; }
Программа 15 Определить количество запятых во вводимой последовательности символов.
Таблица имён c – символ, вводимый с клавиатуры; k – количество введенных символов; n – количество введенных запятых.
#include<conio. h> #include<iostream> #include <stdio. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int k, n; char c; k=n=0; do { cout << (k+1) << " Введите символ - "; cin >> c; k++; if (c==', ') n++; } while (c!='. '); cout << «Количество введенных символов" << k << endl; cout << «Количество запятых = " << n << endl; return 0; }
Программа 16 Напечатать чётные числа в диапазоне 0 – n, где n – заданное целое число.
#include<conio. h> #include<iostream> #include <stdio. h> #include <math. h> using namespace std; int main() { setlocale(LC_ALL, "rus"); int x, n; cout << “Введите целое число n= "; cin >> n; cout << «Четные числа в интервале [0, n]: "; for (x=0; x<=n; x++) { if (x%2) continue; cout << x << " "; } return 0; }
Массивы и строки
prog_lk4_new.pptx