- •Т.Э. Шульга основы программирования на языке с
- •Введение
- •1. Структура программы на языке с
- •Void main()
- •Задание 1. Вывод строки на экран с использованием esp-последовательности
- •2. Переменные. Основные типы данных
- •Задание 2. Описание переменных и преобразование типов
- •3. Ввод – вывод значений переменных
- •Void main()
- •Void main()
- •Задание 3. Форматирование вывода
- •4. Основные операции языка с
- •Void main ()
- •Заданиe 4. Простейшие вычисления
- •5. Конструкции выбора
- •Void main()
- •Void main()
- •Void main()
- •Задание 5. Обработка введенного символа
- •Задание 6. Вычисление значения функции
- •Задание 7. Применение разветвляющихся алгоритмов при решении простейших задач
- •Задание 8. Mультиветвление
- •6. Конструкции цикла и передачи управления
- •Int *t; // неинициализированный указатель на объект типа int,
- •Void main()
- •Int a2[3][2]; // массив из 3 массивов, содержащих по 2 целых элемента.
- •Задание 9. Детерминированные циклы. Простейшие задачи
- •Void main()
- •Задание 10. Итерационные циклы. Простейшие задачи
- •Void main()
- •Int last;
- •Задание 11. Одномерные массивы
- •Void main()
- •Задание 12. Вложенные циклы
- •Void main ()
- •Задание 13. Двумерные массивы
- •Void main ()
- •Задание 14. Посимвольная обработка строк
- •Void main ()
- •Задание 15. Сортировка массива
- •Void main ()
- •7.Функции
- •Int max (int n, int m ) // определение функции нахождения максимума
- •Void main()
- •Int strcmp(const char *str1, const char* str2);
- •Void main()
- •Int fclose (file * stream);
- •Int feof(file *stream);
- •Int fseek ( file* stream, long offset, int origin);
- •Void main ()
- •Задание 16. Определение и вызов функций
- •Задание 17. Рекурсивные функции
- •Задание 18. Использование библиотечных функций string.H
- •Задание 19. Использование библиотечных функций stdio.H
Задание 14. Посимвольная обработка строк
Пример. Переслать из одной строки, читаемой с клавиатуры, в новую строку каждый третий символ.
Void main ()
{
const int n=255;
char str1[n];
printf ("Enter string ");
gets(str1);
int len = 0; // вычислим длину строки str1 – len
while (str1[len]) len++;
char *str2= (char *)malloc(len+1); //определили указатель
//на второй массив символов
//и выделил участок памяти для него
int j=0; //определили индекс для массива str2
for (int i=2;i<=len;i+=3)// цикл пересылки каждого
//третьего символа
str2[j++]=str1[i];
str2[j]='\0'; // в новую строку на последнее место внесли
// символ конца строки
printf("str1= %s",str1);
printf("\nstr2= %s",str2);
free(str2);
getch();
}
Сформировать строку, в которой все прописные буквы заданной заменить строчными, а все строчные буквы – прописными.
Сформировать строку, состоящую из всех строчных букв, входящих в заданную строку, без повторов.
Дано слово. Определить, упорядочены ли его буквы по алфавиту. Выделить первую упорядоченную последовательность в новую строку.
Из заданной текстовой строки выбрать все строчные и прописные буквы в разные подстроки, пробелы и небуквенные символы повторять в обеих подстроках.
Сформировать строку, состоящую из символов заданной строки, где после каждой гласной буквы добавлен пробел.
Из заданной текстовой строки выбрать все символы главных букв в одну строку, а все прочие в другую.
Дана строка. Сформировать строку, содержащую символы данной в обратном порядке, причем каждый четвертый символ (считая с конца данной строки) выкинуть.
Дана строка. Сформировать строку, содержащую все символы данной за исключение символов гласных букв.
Дана строка. Сформировать строку, содержащую все символы данной за исключение символов прописных букв.
Дана строка. Сформировать строку, содержащую все символы данной, но точки заменены на многоточие.
Дана строка. Сформировать строку, содержащую все символы, которые входят в данную только один раз, в том порядке, в котором они расположены в исходной строке.
Дана строка. Сформировать строку, содержащую все символы данной, кроме символов, заключенных в скобки ‘(‘, ‘)’. Сами скобки нужно включить в новую строку. (Считается, что скобки расставлены корректно, и не могут быть вложенными).
Задание 15. Сортировка массива
Сортировку следует понимать как процесс перегруппировки заданного множества объектов в некотором определенном порядке. Основное требование к методам сортировки – экономное использование времени процессора и памяти. Существующие методы сортировки обычно разбивают на три класса в зависимости от лежащего в их основе приема: сортировка выбором, сортировка обменом, сортировка вставками.
Пример. Реализовать пузырьковую сортировку случайным образом генерируемого массива. Пузырьковая сортировка: массив просматривается от начала до конца. Сравниваются i–тое и (i+1)–ое числа. Если i–тое число больше (сортировка по возрастанию), то они меняются местами. Массив просматривается до тех пор, пока от начала до конца массива не сделано ни одной перестановки соседних чисел.