Разделы презентаций


АЛГОхитрости

АЛГОхитростиТиповые алгоритмические приёмы работы с символами и строками Вывод на экран (печать) изображения символа ASCII и его кода (порядкового номера в таблице).C / С++ Используются спецификаторы формата вывода:Спецификатор формата %с выведет

Слайды и текст этой презентации

Слайд 1И+ПРГ



АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Вывод на

экран (печать) символа и его кода (номера в таблице ASCII).

Организация терминального условия в цикле до конца строки.
Символьные рамочные терминальные условия цикла.
Строка – целое число (в цикле).
Строка – вещественное число.
Удаление начальных пробелов в строке.
Особенности ввода строк оператором scanf со спецификатором формата ввода %s.
Выделение слов из строки.
И+ПРГАЛГОхитростиТиповые алгоритмические приёмы работы с символами и строками Вывод на экран (печать) символа и его кода (номера

Слайд 2

АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Вывод на

экран (печать) изображения символа ASCII и его кода (порядкового номера

в таблице).

C / С++

Используются спецификаторы формата вывода:
Спецификатор формата %с выведет на экран собственно символ,
Спецификатор формата %i (%d) выведет на экран код символа.
Пример: printf("Символ: %c Код: %i\n", ‘F’, ‘F’);
Примечание:
Операция int n = 'h'+'e'+'l'+'l'+'o'; выполнит арифметическое суммирование значений кода символов: n = 532

И+ПРГ

Организация терминального условия в цикле до конца строки.

Терминальное условие автоматичес-ки становится ложным, когда встре-чает при пробеге по строке 0-символ (\0, точнее \x0 – 16иричный ноль).
Пример: while (str[i]) // цикл продолжается до \0
Но можно использовать функцию:
strlen (str) – текущая длина строки str,
Пример: int n = strlen(str);
while (i < n)

АЛГОхитростиТиповые алгоритмические приёмы работы с символами и строками Вывод на экран (печать) изображения символа ASCII и его

Слайд 3

АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Символьные рамочные терминальные

условия цикла.
В качестве терминального условия в циклах и рекурсивных функциях

обработки строк может использоваться рамочный диапазон символов:

Например,
для проверки попадания символа строки в диапазон символов-цифр терминальное условие при пробеге по строке будет:

while ((st[i] >= '0') && (st[i] <= '9')) – в C

И+ПРГ

АЛГОхитростиТиповые алгоритмические приёмы работы с символами и строкамиСимвольные рамочные терминальные условия цикла.В качестве терминального условия в циклах

Слайд 4


АЛГОхитрости

Типовые алгоритмические приёмы работы с символами и строками
Строка – целое

число (в цикле).
#include
#include
void main()
// Проверка, является ли строка

целым числом
{
char st[20]; // строка
int i; // номер проверяемого
символа строки
printf("\n Введите число и нажмите Enter \n");
printf ("-> ");
scanf ("%s", st);
i = 0;
while ((st[i] >= '0') && (st[i] <= '9'))
i++;
см. продолжение

C / С++

И+ПРГ

продолжение

printf("/n Введённая строка ");
if (st[i]) // st[i] - \0, если введены
только цифры
printf("не ");
printf("является целым числом.");
printf("\n\nДля завершения нажмите Enter");
getch();
}


Слайд 5


АЛГОхитрости

Типовые алгоритмические приёмы работы с символами и строками
5. Строка –

вещественное число.
C / С++
#include
#include
void main()
// Является ли строка

дробным числом без знака
{ char st[20]; // строка
int i; // номер проверяемого символа
строки
int ok=0; // пусть, строка - не дробное число
printf("\n Введите число и нажмите
Enter\n");
printf ("-> "); scanf ("%s", st);
i = 0;
if((st[i]>='0')&&(st[i]<='9')) //первый
символ - цифра
{ while ((st[i] >= '0') && (st[i] <= '9'))
i++;

см. продолжение

продолжение
if (st[i] == '.') // за цифрами должна быть точка
{ i++;
// за точкой должна быть хотя бы одна цифра
if ((st[i] >= '0') && (st[i] <= '9'))
{ // и ещё цифры
while ((st[i]>='0')&&(st[i]<='9'))
i++;
ok = 1; // похоже строка - дробное
число
} } }
printf("\nCтрока %s ", st);
if (st[i] || !ok)
printf("не ");
printf("является дробным числом
без знака.");
printf("\n\nДля завершения
нажмите Enter");
getch(); }

И+ПРГ


Слайд 6

АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
6. Удаление начальных

пробелов в строке.
#include
#include
main()
{ int i; char str[100]; // Массив

для строки
printf("\nВведите строку символов:\n");
gets(str); // Вводим строку
while (str[0]==' ') /* если первый символ пробел, то сдвигаем массив влево на одну позицию */
{ for (i=0; istr[i]=str[i+1]; }
printf("\nИсправленная строка:\n%s\n",str);
}

Более оптимально сделать так:
int k=0, n = strlen (str);
while (str[k]==' ') k++; // считаем пробелы
{ // смещаем строку на k символов
for (i=k; i<=n; i++)
str[i - k]=str[i]; }

И+ПРГ

АЛГОхитростиТиповые алгоритмические приёмы работы с символами и строками6. Удаление начальных пробелов в строке.#include#includemain(){ int i; char str[100];

Слайд 7

АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
7. Особенности ввода

строк функцией scanf со спецификатором формата ввода %s.
Для чтения из

входного потока строки можно использовать функцию scanf() со спецификатором преобразования %s. Использование спецификатора преобразования %s заставляет scanf() читать символы из буфера клавиатуры до тех пор, пока не встретится какой-либо разделитель. Читаемые символы помещаются в элементы символьного массива, на который указывает соответствующий аргумент, а после введенных символов еще добавляется символ конца строки ('\0').
Разделителем может быть пробел, разделитель строк, табуляция, вертикальная табуляция или подача страницы. В отличие от функции gets(), которая читает строку, пока не будет нажата клавиша , scanf() читает строку до тех пор, пока не встретится первый разделитель. Это означает, что scanf() нельзя использовать для чтения строки "это испытание", потому что после пробела процесс чтения прекратится.
При вводе строки функцией scanf разделители, расположенные перед первым значащим символом строки – не вводятся (пропускаются).
Пример: ввод строки " привет всем":
#include
int main(void)
{ char str[80];
printf("Введите строку: ");
scanf("%s", str);
printf("Вот Ваша строка: %s", str);
return 0; }

Программа выведет только часть строки, то есть слово "привет", без пробелов.

И+ПРГ

АЛГОхитростиТиповые алгоритмические приёмы работы с символами и строками7. Особенности ввода строк функцией scanf со спецификатором формата ввода

Слайд 8

АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
8. Выделение слов

из строки.
Будем представлять строку как чередование
групп символов:
разделители (пробелов), слово,

разделители…
#include
// #include
#include
int main(void)
{ char s[81], word[81];
printf("Введите строку: ");
gets(s); int i = 0, j;
while (s[i]){
while (isspace(s[i]) || ispunct(s[i])) // сдвигаем до
i++; // начала слова
if (s[i]==0)
break;
j = i;
while (s[i] && ! isspace(s[i]) && ! ispunct(s[i])){
word[ i – j] = s[i]; i++;
}
word[i – j] = 0;
// Что-то делаем со словом word?
}
return 0; }


И+ПРГ


ввод s

i=0

конец
строки

Сдвигаем i до начала слова

Формируем слово, сдвигая
i до разделителя

Что-то делаем со словом?

да

АЛГОхитростиТиповые алгоритмические приёмы работы с символами и строками8. Выделение слов из строки.Будем представлять строку как чередование групп

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика