
- •Основы программирования язык “с” Минск – 2005
- •§1 Введение в программирование
- •Void main()
- •Void main()
- •Void main()
- •2 Распечатать свою фамилию следующим образом
- •3. Распечатать прямоугольник следующим образом
- •1.1 Простые программы: печать стоки текста Понятие переменной.
- •Volatile while
- •1.2 Целый тип данных
- •1.3 Числа с плавающей точкой
- •Void main({
- •1.4 Символьный тип
- •Void main()
- •§2 Управляющий структуры
- •2.1 Структура выбора if (если) и if/else(если - иначе)
- •Void main()
- •Void main()
- •2.2 Структуры повторенийfor(цикл)
- •Void main()
- •Void main()
- •2.3 Структура повторения while (пока)
- •Void main()
- •Void main()
- •Void main(){
- •Void main()
- •Void main()
- •2.4 Структура многомерного выбора switch
- •Void main()
- •Void main()
- •2.5 Операторы continue и break
- •Void main()
- •Void main()
- •2.6 Контрольные вопросы:
- •§3 Функция
- •Int printf(“const char * string”,…); %[флаг][ширина][точность][модификатор типа] тип_формата
- •Int scanf(const char * format, ……); возвращаемое значение – число считанных полей
- •3.1 Определение функции:
- •3.2 Классы памяти.
- •3.3 Указатели
- •Void main()
- •Void fff(int,int,int*,int*,int*,double*);
- •Void main()
- •Void fff(int a,int b,int*p1,int*p2,int*p3,double*p4)
- •Генерация случайных чисел.
- •Void main()
- •Void main()
- •Void main()
- •Void main(){
- •Void main()
- •3.6 Переменные перечисляемого типа
- •Int rollDice();
- •Void main()
- •Int sum,myPoint;
- •Int rollDice(){
- •Int die1,die2,workSum;
- •Void main()
- •§4 Массивы
- •4.1 Одномерные массивы
- •Int array[10];
- •4.2 Примеры использования массивов
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •4.3 Сортировки массивов
- •Void main()
- •Void main()
- •Void main()
- •Void main(){
- •Int arr1[maxsize],arr2[maxsize],buf;
- •Void main()
- •4.4 Передача массивов функции
- •4.5 Двумерные массивы
- •Void main()
- •Int I,j,temp;
- •Void main()
- •4.6 Контрольные вопросы:
- •§5 Символьная строка
- •5.1 Объявление символьной строки
- •Void main()
- •Void main()
- •Int srav(char *,char *);
- •Void main()
- •Int srav(char *X,char *y)
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •5.3 Массив строк
- •Void main()
- •Void main()
- •Void main()
- •§6 Динамическое распределение памяти
- •6.1 Функция malloc()
- •Void * malloc(unsigned size)
- •Void free(free *ptr)
- •Void main(){
- •Void main(){
- •Void vvod_mas(int*,int);
- •Void sort_vozr(int*,int);
- •Void main()
- •Vvod_mas(ptr1,n1);
- •Vvod_mas(ptr2,n2);
- •Void sort_vozr(int*X,int n)
- •Void vvod_mas(int*X,int n)
- •6.2 Функция сalloc()
- •Void * сalloc(unsigned num ,unsigned size)
- •6.3 Функция realloc()
- •Void * realloc(void *ptr ,unsigned size)
- •§7 Структура
- •7.1 Объявление структуры
- •Void main()
- •7.2 Объединения
- •§8 Файлы и потоки
- •8.1 Объявления файла
- •Int feof(file *);
- •8.2 Работа с текстовым файлом
- •Int fprintf(file *, const char format, …);
- •Void main()
- •Int account;
- •Int fputs(const char *, file *);
- •Int fscanf( file *, const char *format, …..);
- •Void main()
- •Void main()
- •Int account;
- •Void main()
- •Int fseek(file *,long ,int );
- •Void main()
- •Void main()
- •Void main()
- •Void show_file(file *k1)
- •Void dobav_file(file *k1)
- •Void fill_file(file *k1)
- •Создание файла произвольного доступа.
- •8.3 Работа с бинарным файлом
- •Void main()
- •Void main()
- •Void print_file(file *);
- •Void main(){
- •If(feof(k1)){
- •If(feof(k2)){
- •Void print_file(file *k){
- •8.4 Kонтрольные вопросы
- •Какие операции определены со строками?
2.4 Структура многомерного выбора switch
В программировании часто встречаются задачи выбора одного варианта решения задачи из многих возможных. Это можно сделать и с помощью вложенных if……else. Однако более удобный способ – использование оператора switсh, который выполняет одно из множество действий в зависимости от значения проверяемого выражения. switсh отличается от if тем, что он выполняет операцию строгого равенства, в то время как оператор if может вычислять логические выражения и отношения.
общий формат оператора switсh :
switch (выражение)
{
case const1: operator1; break;
case const2: operator2; break;
case const3: operator3; break;
case const4: operator4; break;
default const5: operator5; break;
}
Свойства:
Выражение должно иметь целочисленный тип (допустимо использование символьной константы, перечислений и вызов функции, возвращающей целочисленное значение). Значение выражения сопоставляется со всеми находящимися внутри конструкции константами, стоящими после case
Оператор, указанный после case выполняется, если значение выражения равно соответствующей константе. Если ни с одной из констант совпадений нет, то выполняется оператор стоящий после default, если конечно он есть, т.к. его существование не обязательно. default может быть записан в любом месте.
Константы сравниваются в той последовательности, в которой они перечислены и не может быть двух констант имеющих одинаковое значение в одном операторе switch, кроме того случая, когда оператор switch содержит в себе другой оператор switch и во втором операторе могут быть аналогичные константы.
Break передает управление за пределами оператора switch. Если после какого-либо оператора отсутствует break, то выполняется оператор стоящий после следующего case, т.е. он автоматически считается правильным.
Пример:
1. Вводим числа ввод чисел заканчивается 0. Посчитать сколько раз вводилось каждое из чисел то 5 до 8,.
#include<stdio.h>
Void main()
{
int x,k_5=0,k_6=0,k_7=0,k_8=0;
do
{
printf("Введите числи от 5 до 8: ");
scanf("%d",&x);
switch(x)
{
case 5:
k_5++;
break;
case 6:
k_6++;
break;
case 7:
k_7++;
break;
case 8:
k_8++;
break;
default:
printf("Введено неправильное число:\n");
break;
}
}while(x);
printf("Колечество:\n5\t%d\n6\t%d\n7\t%d\n8\t%d\n",k_5,k_6,k_7,k_8);
}
2. Даны три монеты достоинством 5, 10, 15. Напишите программу, которая определит, можно ли заданную сумму набрать из каких–либо двух монет
int x;
printf("Введите числи от 5 до 8: ");
scanf("%d",&x);
switch(x){
case 5+10:
printf(“Yes\n”);
break;
case 5+15:
printf(“Yes\n”);
break;
case 10+15:
printf(“Yes\n”);
break;
default:
printf("No:\n");
break;
}
3. Переделать программу 2 используя оператор if/else
4. Калькулятор1. Ввести число, ввести символ (‘+’, ‘-‘, ‘*’, ‘/’) затем ввести число. Программа считает и выводит результат.
#include<stdio.h>
Void main()
{
double x,y;
char ch;
printf("Vvedite cislo: ");
scanf("%lf",&x);
fflush(stdin);
printf("Vvedite dejstvie: ");
fflush(stdin);
scanf("%c",&ch);
printf("Vvedite chislo: ");
scanf("%lf",&y);
switch(ch)
{
case '+': x+=y;
break;
case '-': x-=y;
break;
case '*': x*=y;
break;
case '/': x/=y;
break;
}
printf("=%.2lf\n",x); }
5. Калькулятор 2. Программа требует ввода числа, символа и числа до тех пор пока не введем символ ‘=’.
6. Калькулятор 3. Программа требует ввода числа, символа и числа до тех пор пока не введем символ ‘=’. Добавить в программу подсчет квадратного корня числа, получения обратного числа, т.е. если число положительное, то становиться отрицательным и наоборот, подсчет процента.