- •1. Основы алгоритмизации и программирования
- •1.1. Этапы подготовки и решения задач на эвм
- •1.2. Алгоритмы и способы их описания Понятие алгоритма
- •Способы описания алгоритмов
- •Структурные схемы алгоритмов
- •1.3. Компиляция и интерпретация программ
- •1.4. Стили программирования
- •Процедурное программирование
- •Функциональное программирование
- •Логическое программирование
- •Объектно-ориентированное программирование
- •2.1. Пример готовой программы.
- •2.2. Структура основной программы
- •2.3. Алфавит языка
- •2.4. Константы и переменные Константы
- •Переменные
- •Примеры записи имен переменных
- •2.5. Арифметические выражения
- •Примеры вычисления арифметических выражений
- •Стандартные функции
- •Примеры программирования арифметических выражений
- •Контрольные задания
- •1. Составить описания для заданных переменных
- •2.6. Линейные вычислительные процессы
- •Оператор присваивания
- •Странные операторы присваивания
- •Операторы ввода-вывода
- •Операторы ввода исходных данных с клавиатуры
- •Потоковый ввод данных числового типа
- •Форматный ввод
- •Операторы вывода данных на экран Потоковый вывод
- •Форматный вывод
- •Контрольные задания
- •2.7. Разветвляющиеся вычислительные процессы
- •Логические выражения
- •Порядок выполнения операций в логических выражениях
- •Условные операторы
- •Короткий условный оператор
- •Полный условный оператор
- •If (логическое выражение) p1; else p2;
- •Вложенные структуры условных операторов
- •Оператор выбора
- •Контрольные задания
- •2.8. Циклические вычислительные процессы
- •Операторы цикла с условием
- •Оператор цикла do...While
- •Оператор цикла с параметром
- •2.9. Базовые алгоритмы
- •Задача 1. Алгоритм организации счетчика
- •Задача 2. Алгоритм накопления суммы
- •Задача 3. Алгоритм накопления произведения
- •Задача 4. Алгоритм поиска минимального члена последовательности
- •Задача 5. Табулирование функции (или кратные циклы)
- •Задача 6. Вычисление сумм последовательностей
- •2.10. Указатели и массивы Указатели
- •Понятие массива
- •Общий вид описания массива
- •Одномерные массивы
- •Описание одномерного массива
- •Индексированные переменные
- •Ввод-вывод одномерных массивов
- •Обработка одномерных массивов
- •Задача 1. Организация счетчика
- •Задача 2. Накопление суммы и произведения
- •Задача 3. Поиск минимального и максимального элементов массива
- •Двухмерные массивы
- •Описание двухмерного массива
- •Ввод-вывод двухмерного массива
- •Обработка матриц
- •2.11. Подпрограммы Структура сложной программы
- •Функции
- •Общий вид описания функции
- •Обращение к функции
- •Пример программы с функцией
- •Механизм замены параметров
- •Параметры-массивы в функциях
- •Рекурсия
- •Примеры программирования задач с использованием подпрограмм
- •Задача 1
- •2.12. Текстовые данные
- •Символьный тип данных
- •Ввод-вывод символьных данных
- •Обработка символьных данных
- •Ввод-вывод строковых данных
- •Обработка строковых данных
- •Стандартные функции обработки строк
- •Сравнение строк:
- •Сцепление строк
- •Определение длины строки
- •Копирование строк
- •Поиск символа в стоке
- •Пример программы для задачи с текстовыми данными
- •Контрольные задания
- •2.13. Динамическое выделение памяти
- •Структуры данных Понятие структуры
- •Обработка структур
- •Пример задачи с использованием структурированных данных
- •2.15. Файлы данных Понятие файла
- •Работа с файлами
- •Открытие файла
- •Обработка открытого файла
- •Закрытие файла
- •Функции ввода/вывода
- •Работа с текстовыми файлами
- •Обработка бинарных файлов
- •Контрольные задания
- •Заключение
- •Оглавление
Сцепление строк
strcat(str1,str2) - сцепление строк в порядке их перечисления.
strncat(str1,str2,kol) – приписывает kol символов строки str2 к строке str1.
Функция служит для объединения двух строк в одну. Например, в результате выполнения операторов:
char fam[] = "Андреева С.В. ";
char pr[7]= " "; //7 пробелов
strcat(fam ,pr);
printf(“|%20s|”, fam);
на экран выведется строка:
|Андреева С.В. |
Заметим, что строка вывода занимает поле в 20 позиций, а переменная fam располагается в левой части поля.
Определение длины строки
strlen(str) – определяет длину строки str.
Пример. Определить длину строки
char fam[] = "Андреева С.В.";
printf("%d",strlen(fam));
функция strlen() вернёт значение равное 13 (символов).
Копирование строк
strcpy(str1,str2) – копирует строку str2 в строку str1.
strncpy(str1, str2, kol) – копирует kol символов строки str2 в строку str1.
Пример. Скопировать фамилию сотрудника в переменную fam и вывести на экран.
#include "stdafx.h"
#include<string.h>
int main()
{ char fam[15];
char *str = " Андреева С.В.";
strcpy(fam, str);
printf("|%s|\n", fam);
return 0;
}
В результате выполнения данных операторов на экран будет выведена строка:
|Андреева С.В.|
Поиск символа в стоке
strchr(st, ch) - функция поиска адреса символа ch в строке st. Результатом выполнения поиска является адрес найденного символа в строке st, иначе возвращается нулевой адрес. Чтобы вычислить порядковый номер символа ch в строке, можно из адреса P вычесть адрес начала строки.
Пример. В заданной фамилии определить порядковый номер символа ‘n’.
#include "stdafx.h"
#include<string.h>
int main()
{ char fam[] = "Ivanov";
char faml[20];
char a='n';
char *p;
p=strchr(fam,a);
if(p)
printf("|%s|%d\n", fam, p-fam);
else
printf("нет такого символа в фамилии!\n");
return 0;
}
Пример программы для задачи с текстовыми данными
Исходным текстом является предложение, заканчивающееся точкой. Слова в предложении отделяются друг от друга одним пробелом. Определить самое длинное слово в предложении.
#include "stdafx.h"
#include<string.h>
int main()
{ char slovo[12],x[120]; // описание строк
int i,m=0,n,k=0;
gets(x); // ввод строки х
for(i=0; i<strlen(x); i++) //цикл до конца строки х
if(x[i]!=' ') k++; // считаем символы до пробела
else
{ if (k>m){ m=k;n=i;} //поиск мах значения счетчика к
k=0;
}
k=0;
for(i=n-m;i<n;i++) //выбор из строки х самого длинного слова
slovo[k++]=x[i];
slovo[k]=0;
printf("%s \n%s\n",slovo,x); /*вывод найденного слова и всей строки х */
printf("%d %d\n",strlen(slovo),strlen(x));//вывод их длин
return 0;
}
Контрольные задания
Подготовить текст исходного предложения в соответствии с вариантом задачи, указанным в таблице (предложение должно заканчиваться точкой, разделитель слов в предложении - пробел). Составить программу и выполнить ее на ПК.
Вариант |
Условие задачи |
1 |
Из заданного предложения, начиная с первой встретившейся буквы 'а', скопировать в подстроку все символы до первой встретившейся буквы ' к'. |
2 |
В исходном предложении все символы пробела заменить символами подчеркивания.
|
3 |
Вывести символы, которые встречаются в исходном предложении по одному разу. |
4 |
В исходном предложении удалить все символы пробела. Вывести преобразованный текст и количество удаленных пробелов. |
5 |
Определить, сколько раз в заданном предложении встречается сочетание двух первых букв. |
6 |
В качестве исходного предложения задать арифметическое выражение, записанное на языке С: . Проверить, соблюдается ли баланс открывающихся и закрывающихся скобок. Если равенство соблюдается, то вывести соответствующее сообщение, в противном случае вывести количества открывающихся и закрывающихся скобок. |
7 |
В исходном предложении поставить между словами произвольное число пробелов. Отредактировать текст, удалив лишние пробелы и оставив только по одному пробелу. |
8 |
В заданном предложении найти слово, в котором доля буквы 'а' максимальна. Вывести найденное слово и посчитать, сколько раз буква 'а' встречается в этом слове. |
9
|
В заданном предложении символы самого длинного слова заменить символами 'х'. |
10
|
Сформировать числовой массив N, элементы которого указывают длину каждого слова в исходном предложении. |
11 |
В исходном предложении перед каждым словом поставить знак ?. |
12 |
Составить строку, содержащую первые буквы из каждого слова заданного предложения. |
13 |
В каждом слове заданного предложения поменять местами первую букву и последнюю. |
14
|
Указать, сколько раз каждый символ встречается в заданном предложении. |
15 |
В заданном предложении найти самое короткое и самое длинное слово. |
16 |
Исходное предложение задать в виде арифметического выражения, записанного на языке С. Последовательность символов 'x[i]' в заданном предложении заменить последовательностью 'а[j]'. Вывести преобразованный текст, а также число произведенных замен. |
17 |
В заданном предложении указать слово, в котором доля букв 'т' и 'р' максимальна. Вывести найденное слово и количество букв 'т' и 'р', встретившихся в этом слове. |
18 |
В заданном предложении удалить все запятые. Вывести преобразованный текст, а также число удаленных запятых. |
19 |
В заданном предложении заменить все строчные латинские буквы на прописные. Определить, сколько раз в преобразованном предложении встречается сочетание 'АВ’ |
20 |
В заданном предложении в конце каждого слова поставить многоточие. Вывести преобразованное предложение, а также длину полученного текста. |