- •Т.В. Панова программирования на языке высокого уровня си Лабораторный практикум
- •Лабораторная работа №1. Обработка двумерных массивов данных………...…………….3
- •Лабораторная работа №1
- •Обработка двумерных массивов данных
- •I. Теоретические сведения.
- •II. Контрольные вопросы.
- •III. Практическая часть.
- •1. Выполнение общего задания.
- •2. Математическая модель и описательный алгоритм.
- •3. Блок-схема алгоритма:
- •4. Текст программы:
- •5. Тестирование:
- •2. Математическая модель и описательный алгоритм.
- •3. Блок-схема алгоритма:
- •4. Текст программы:
- •5. Тестирование:
- •2. Математическая модель и описательный алгоритм.
- •3. Блок-схема алгоритма:
- •4. Текст программы:
- •5. Тестирование:
- •5. Тестирование:
- •2. Математическая модель и описательный алгоритм.
- •3. Блок-схема алгоритма:
- •4. Текст программы:
- •5. Тестирование:
- •Лабораторная работа №2
- •Работа со строками
- •I. Теоретические сведения.
- •1. Некоторые стандартные функции обработки строк и их использование
- •II. Контрольные вопросы.
- •3. Блок-схема алгоритма:
- •4. Текст программы:
- •5. Тестирование:
- •2. Блок-схема алгоритма:
- •3. Текст программы:
- •4. Тестирование:
- •Лабораторная работа № 3
- •Функции
- •I. Теоретические сведения.
- •II. Контрольные вопросы.
- •III. Практическая часть.
- •2. Описание подхода к решению задачи.
- •2. Блок-схемы алгоритмов функций:
- •3. Текст программы:
- •4. Тестирование:
- •2. Блок-схемы алгоритмов функций обработки строки:
- •3. Текст программы:
- •4. Тестирование:
- •Лабораторная работа №4
- •Работа с файлами
- •I. Теоретические сведения.
- •Определение типов символов
- •II. Контрольные вопросы.
- •III. Практическая часть.
- •1. Выполнение общего задания.
- •2. Блок-схема алгоритма:
- •3. Текст программы:
- •2. Текст программы:
- •2. Текст программы:
- •2. Текст программы:
- •2. Выполнение индивидуального задания.
Лабораторная работа №2
Тема
Работа со строками
Цель: получение практических навыков решения задач обработки строк.
I. Теоретические сведения.
См. лекции по курсу «Программирование на языке высокого уровня».
1. Некоторые стандартные функции обработки строк и их использование
Функции обработки строк объявлены в include-файлах <string.h> и <ctype.h>.
Процедура |
Использование |
strcat |
добавление строки |
strchr |
определение первого вхождения данного символа в строке |
strcmp |
сравнение двух строк |
strcpy |
копирование одной строки в другую |
strlen |
определение длины строки |
strlwr |
преобразование строки в символы нижнего регистра (в строчные буквы) |
strncmp |
сравнение n символов в двух строках |
strncpy |
копирование n символов из одной строки в другую |
strnset |
заполнение n символов строки заданным символом |
strpbrk |
определение первого вхождения символа из одной строки в другой строке |
strrchr |
определение последнего вхождения данного символа в строке |
strrev |
переворот строки (reverses) |
strspn |
нахождение в строке первой подстроки из данной последовательности символов |
strstr |
определение первого вхождения данной строки в другой строке |
strupr |
преобразование строки в символы верхнего регистра (в прописные буквы) |
II. Контрольные вопросы.
Дать понятие символьному литералу и символьной переменной. Привести примеры.
Что такое строковый литерал? Привести пример.
Что представляет собой строка?
Как создать строку? Привести примеры.
Привести пример обычного присваивания значения строке.
Как осуществить присваивания указателей строковым литералам?
Как ввести строку?
III. Практическая часть.
1. Выполнение общего задания.
Разобрать задачи.
Задача 1
1. Постановка задачи: перевести буквы (латиница) изначально заданного слова в верхний регистр, вывести слово.
2. Блок-схема алгоритма:
3. Текст программы:
#include <conio.h> #include <stdio.h> int main() {
char str[]="word"; // заданное слово
int i; // счетчик символов в слове
printf(“\n%s\n”,str); // вывод заданного слова строкой
for (i=0;str[i]!='\0';i++) // пока не будет достигнут нуль-терминатор
str[i]-=32; /* от кода каждого i-ого символа вычитать 32 для получения кода этого символа в верхнем регистре */
for (i=0;str[i]!='\0';i++)
printf ("%c",str[i]); // вывод полученного слова посимвольно
getch();
return 0;
}
4. Тестирование:
Теоретически рассчитанное выходное значение |
Практически полученное выходное значение |
Тест: входная строка:”word” | |
WORD |
WORD |
Задача 2
1. Постановка задачи: ввести предложение, заканчивающееся точкой, и вывести последнее слово, если предложение правильное, т.е. между словами один пробел, иначе вывести сообщение о неправильном предложении.
2. Математическая модель и описательный алгоритм.
Максимальная длина строки n=80; начальное значение переменной s=’ ’ (пробел); счетчики: символов в строке i=0, символов в слове k=0, пробелов p=0.
Используя в цикле с предусловием i<n-1 и s≠’.’ функцию getchar(), можно считывать символ в переменную s, предварительно запомнив предыдущий символ в переменной ss; если в s – пробел или точка (конец слова или конец предложения), то:
если предыдущий символ (ss) – пробел, то счетчик пробелов p=p+1,
если введенный символ (s) – не точка, то счетчик символов в слове k=0;
иначе (если в s ни пробел и ни точка) формировать строку как массив символов a[k]=s, k=k+1 и i=i+1;
после завершения цикла, если p>0 или i≥n-1, то вывести сообщение о неправильности предложения; иначе вывести последнее слово.