Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Программирование на языке высокого уровня. Символы. Кодировки. Строки

«Ходовые» типы данных
Программирование  на языке высокого уровняC++ ► Лекция 5 ► Символы. Кодировки. «Ходовые» типы данных СимволыСкольки-значный код потребуется для представления одного символа текста?A…Z a…z 0…9 Кодировка Windows CP1251ASCII ASCII (128..255)CP1251 (128..255)Вставка символа в Microsoft WordUnicode 128..65535 Фрагменты символов Unicode // объявление и инициализацияchar a, b;a = '7';printf( Строки в C++char s[6];s[0] = 72;s[1] = 101;s[2] = 108;s[3] = 108;s[4] Строки в C++  – нуль-терминированные// эксперимент!char s[] = Перевод в шестнадцатеричную систему счисленияprintf( Подсчёт слов, начинающихся с заглавной буквыprintf( Использование string.h// Задача: в строке, содержащей путь и имя файла, // изменить Домашнее заданиеПодсчитать количество «слов» в тексте, который введёт пользователь. За «слово» считать
Слайды презентации

Слайд 2 «Ходовые» типы данных

«Ходовые» типы данных

Слайд 3 Символы
Скольки-значный код потребуется для представления одного символа текста?

A…Z

СимволыСкольки-значный код потребуется для представления одного символа текста?A…Z a…z 0…9

a…z 0…9 "!?.,:;№_-+*/%\=(){}[]@#$^&~|’ – это 27+27+10+32+… ≥ 96 символов

6

бит = 64 значения 7 бит = 128 значений 8 бит = 256 значений

Изначальная идея: один символ – один байт. Коды 0…127 – основной набор символов, коды 128…255 – для национального алфавита.

ASCII – базовая 7-битовая кодировка для латинского алфавита и основных символов. Кириллические кодировки (CP866, Windows CP1251, KOI8-R и другие) отличаются только размещением русских букв в диапазоне кодов 128…255.


Слайд 4 Кодировка Windows CP1251

ASCII

Кодировка Windows CP1251ASCII

Слайд 5 ASCII (128..255)
CP1251 (128..255)
Вставка символа в Microsoft Word


Unicode 128..65535

ASCII (128..255)CP1251 (128..255)Вставка символа в Microsoft WordUnicode 128..65535

Слайд 6 Фрагменты символов Unicode

Фрагменты символов Unicode

Слайд 7 // объявление и инициализация
char a, b;

a = '7';
printf("%c",

// объявление и инициализацияchar a, b;a = '7';printf(

a);

b = (char)55; // то же самое
printf("%c", b);








Символы в

C++

// посмотреть кодировку

for (int i = 0; i < 256; i++)
printf("%c", i );

printf("Code page #866:\n");
setlocale(LC_ALL, ".866"); // по умолчанию, можно не указывать

for (int i = 128; i < 256; i++)
printf("%c", i );

printf("\n\nCode page #1251:\n");
setlocale(LC_ALL, ".1251"); // или setlocale(LC_ALL, "Russian")

for (int i = 128; i < 256; i++)
printf("%c", i );


Слайд 8 Строки в C++
char s[6];
s[0] = 72;
s[1] = 101;
s[2]

Строки в C++char s[6];s[0] = 72;s[1] = 101;s[2] = 108;s[3] =

= 108;
s[3] = 108;
s[4] = 111;
s[5] = 0;
char

s[] = "Hello";



char s[6];
s[0] = 'H';
s[1] = 'e';
s[2] = 'l';
s[3] = 'l';
s[4] = 'o';
s[5] = 0;




for (int i = 0; i < 5; i++)
printf("%d", s[i] );


for (int i = 0; i < 5; i++)
printf("%c", s[i] );

printf("%s", s );




printf("What's your name? ");
char x[20];
scanf("%s", x);
printf("Hi, %s!", x);


Слайд 9 Строки в C++ – нуль-терминированные
// эксперимент!
char s[]

Строки в C++ – нуль-терминированные// эксперимент!char s[] =

= "Hello, World!";

printf("Вариант 1: %s\n", s);

s[5] = 0;
printf("Вариант 2:

%s\n", s);

s[5] = '!';
printf("Вариант 3: %s\n", s);

// строка из двух символов
char a[3]; a[0]='H'; a[1]='i'; a[2]=0;

// строка из одного символа
char b[2]; b[0]='!'; b[1]=0;

// пустая строка (без текста)
char c[1]; c[0]=0;

// строка из двух символов
char a[] = "Hi";

// строка из одного символа
char b[] = "!";

// пустая строка (без текста)
char c[] = "";


// найти длину строки
printf("Введите текст: ");
char t[2000];
scanf("%s", t);

int i = 0;
for(;; i++)
if (t[i]==0) break;

printf("В тексте %d символов!", i);

// найти длину строки
printf("Введите текст: ");
char t[2000];
scanf("%[^\n]s", t);

int i = 0;
for(;; i++)
if (t[i]==0) break;

printf("В тексте %d символов!", i);

// найти длину строки
printf("Введите текст: ");
char t[2000];
scanf("%[^\n]s", t);





printf("В тексте %d символов!", strlen(t));


#include

// для продвинутых: создание своей функции
int mystrlen(char s[])
{
int i = 0;
for(;; i++)
if (s[i]==0) break;
return i;
}

void main()
{
printf("Введите текст: ");
char t[2000];
scanf("%1999[^\n]s", t);
printf("В тексте %d символов!", mystrlen(t));
}


Слайд 10 Перевод в шестнадцатеричную систему счисления
printf("Введите положительное целое: ");
int

n;
scanf("%d", &n);
printf("Шестнадцатеричная запись:\n");
do {
int x = n

% 16;
n = n / 16;
printf("%d\n", x );

} while (n>0);

printf("Введите положительное целое: ");
int n;
scanf("%d", &n);
printf("Шестнадцатеричная запись:\n");
do {
int x = n % 16;
n = n / 16;
char z;
if( x<10 )
z = '0' + x;
else
z = 'A' + x - 10;
printf("%c\n", z );

} while (n>0);

char s[8];
int i=0;

do {
int x = n % 16;
n = n / 16;
char z;
if( x<10 )
z = '0' + x;
else
z = 'A' + x - 10;
s[i] = z;
i++;
} while (n>0);
// после цикла i - количество полученных цифр

// переворачиваем содержимое строки
for(int j=0; j{
char c = s[j];
s[j]= s[i-j-1];
s[i-j-1] = c;
}
s[i]=0; // терминируем строку и выводим
printf("%s", s);


Слайд 11 Подсчёт слов, начинающихся с заглавной буквы
printf("Input text: ");
char

Подсчёт слов, начинающихся с заглавной буквыprintf(

s[2000];
scanf("%[^\n]s", s);

int count = 0;
for(int i=0; i

if ( s[i]==' ' && s[i+1]>='A' && s[i+1]<='Z' )
count++;

printf("There're %d words that start by a capital letter\n", count);

printf("Input text: ");
char s[2000];
scanf("%[^\n]s", s);

int count;
// с первой буквой разбираемся отдельно
if ( s[0]>='A' && s[0]<='Z' )
count = 1;
else
count = 0;

for(int i=0; i if ( s[i]==' ' && s[i+1]>='A' && s[i+1]<='Z' )
count++;

printf("There're %d words that start by a capital letter\n", count);

// оптимальное решение:
// заранее добавить перед текстом лишний пробел
printf("Input text: ");
char s[2000] = " ";
scanf("%[^\n]s", s+1);

int count = 0;
for(int i=0; i if ( s[i]==' ' && s[i+1]>='A' && s[i+1]<='Z' )
count++;

printf("There're %d words that start by a capital letter\n", count);


Слайд 12 Использование string.h

printf("Guess my name? ");
char name[50];
scanf("%s", name);

// конвертирование

всех букв в нижний регистр
// например, "KaTe" -> "kate"
strlwr(name);

//

проверка на равенство
if( strcmp(name, "stacy")==0 )
printf("Correct!!!");
else
printf("Not exactly...");


printf("Login: ");
char login[200];
scanf("%s", login);

// проверка на наличие подстроки
if( strstr(login, "putin")!=NULL )
{
printf("Unknown error. Terminating...");
return;
}

...

#include


Слайд 13 Использование string.h
// Задача: в строке, содержащей путь и

имя файла,
// изменить расширение в имени файла на

"txt"
printf("Введите имя файла: ");
char filename[200];
scanf("%[^\n]s", filename);
int n = strlen(filename);
printf("Длина строки: %d\n", n );

// отсечение расширения вручную
int j=-1;
for(int i=n-1; i>=0; i--)
if (filename[i]=='.')
j = i;

if( j>-1 )
filename[j] = 0;

printf("Имя файла без расширения: %s\n", filename);

strcat(filename, ".txt"); // приклеиваем новое расширение
printf("Имя файла с новым расширением: %s\n", filename);

// отсечение расширения с помощью strrchr
char *p;
// поиск первой точки при просмотре справа-налево
p = strrchr(filename, '.');
if( p!=NULL )
*p = 0; // затираем точку кодом конца строки

#include


  • Имя файла: programmirovanie-na-yazyke-vysokogo-urovnya-simvoly-kodirovki-stroki.pptx
  • Количество просмотров: 141
  • Количество скачиваний: 0