Содержание
- 2. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками Вывод на экран (печать) изображения символа ASCII
- 3. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками Организация терминального условия в цикле до конца
- 4. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками Символьные рамочные терминальные условия цикла. В качестве
- 5. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками Строка – целое число (в цикле). Program
- 6. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками 5а. Строка – вещественное число без знака.
- 7. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками 5б. Строка – вещественное число без знака.
- 8. АЛГОхитрости Типовые алгоритмические приёмы работы с символами и строками 6. Удаление начальных пробелов в строке. program
- 10. Скачать презентацию
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Вывод на экран
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Вывод на экран
C / С++
Pascal
Используются функции:
ord(F) - возвращает порядковый № символа хранящегося в перемен-ной F,
chr(№) - возвращает символ по его номеру.
Пример:
writeln('Символ: ', F,', Код: ', ord(F));
Используются спецификаторы формата вывода:
Спецификатор формата %с выведет на экран собственно символ,
Спецификатор формата %i (%d) выведет на экран код символа.
Пример:
printf("Символ: %c Код: %i\n", F, F);
Примечание:
Операция int n = 'h'+'e'+'l'+'l'+'o';
выполнит арифметическое суммирова-ние значений кода символов: n = 532
И+ПРГ
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Организация терминального условия
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Организация терминального условия
C / С++
Pascal
Используются функция:
Length (str) – текущая длина строки str.
Пример:
while (i <= Length(str));
Терминальное условие автоматичес-ки становится ложным, когда встре-чает при пробеге по строке 0-символ (\0, точнее \x0 – 16иричный ноль).
Пример:
while (str[i]); // цикл продолжается до \0
Но можно использовать функцию:
strlen (str) – текущая длина строки str,
Пример:
while (i <= strlen(str));
И+ПРГ
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Символьные рамочные терминальные условия
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Символьные рамочные терминальные условия
В качестве терминального условия в циклах и рекурсивных функциях
обработки строк может использоваться рамочный диапазон символов:
Например,
для проверки попадания символа строки в диапазон символов-цифр терминальное условие при пробеге по строке будет:
while ((st[i] >= '0') && (st[i] <= '9')) – в C
while (st[i]>='0') and (st[i]<='9') and (i<=Length(st)) – в Pascal
И+ПРГ
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Строка – целое число
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
Строка – целое число
Program StringInt;
(*Проверка является ли строка целым числом*)
Var st: string[20]; {строка текста}
n:integer; {номер проверяемого символа}
begin
writeln ('Введите число и нажмите Enter');
write('-> '); readln(st);
n:=1;
while (n <= Length(st)) and
((st[n] >= '0') and (st[n] <= '9'))
do n := n+1;
write('Введённая строка ');
if n < Length(st)
then write ('не ');
Writeln('является целым числом');
Writeln ('Для завершения нажмите Enter');
Readln;
end.
#include C / С++ Pascal И+ПРГ
#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++;
printf("/n Введённая строка ");
if (st[i]) // st[i] - \0, если введены только цифры
printf("не ");
printf("является целым числом.");
printf("\n\nДля завершения нажмите Enter");
getch();
}
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
5а. Строка – вещественное
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
5а. Строка – вещественное
Pascal
Program StringReal;
(*Является ли строка дробным числом без
знака*)
Var st : string[20]; {строка текста}
i : integer; {номер проверяемого символа}
err: boolean; {TRUE - строка не дробное
число}
Begin writeln('Введите число и нажмите Enter');
write('-> ');
readln(st);
i:=1;
err:=TRUE; {пусть строка - не дробное
число}
if(st[i]>='1') and (st[i]<='9') {первый
символ - цифра}
then begin {за цифрой могут быть ещё цифры}
см. продолжение
продолжение И+ПРГ
While (st[i]>='0') and (st[i]<='9') and (i
if (st[i] = '.') and (i < Length(st)) then
begin
i:=i+1; {за точкой должна быть хотя бы
одна цифра}
if (st[i]>='0') and (st[i]<='9') then
begin
while (st[i]>='0') and (st[i]<='9') and
(i
строки - цифра}
then err:= FALSE; {строка –
дробное число без знака}
end; end; end; write('Cтрока ', st);
if err then write (' не ');
Writeln(' является дробным числом без знака');
Writeln ('Для завершения нажмите
Enter');
Readln; end.
АЛГОхитрости
Типовые алгоритмические приёмы работы с символами и строками
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. Удаление начальных пробелов
program DELprobel;
{ удаляем из строки начальные пробелы }
Var
str : string;
Begin
writeLn('Введите строку: ');
readLn(str);
// пока первый символ пробел
while ( str[1] = ' ' ) do
delete(str, 1, 1); // удаляем первый символ
writeLn('Строка без начальных пробелов:');
writeLn(str);
end.
#include Более оптимально сделать так: И+ПРГ C / С++ Pascal
#include
main()
{ int i; char str[100]; // Массив для строки
printf("\nВведите строку символов:\n");
gets(str); // Вводим строку
while (str[0]==' ') /*если первый символ пробел, то сдвигаем массив влево на одну позицию */
{ for (i=0; i
printf("\nИсправленная строка:\n%s\n",str);
}
int k=0;
while (str[k]==' ') k++; // считаем пробелы
{ // смещаем строку на k символов
for (i=0; i<=strlen(str); i++)
str[i]=str[i+k]; }