🗊Презентация Последовательная обработка данных (язык C, лекция 4)

Нажмите для полного просмотра!
Последовательная обработка данных (язык C, лекция 4), слайд №1Последовательная обработка данных (язык C, лекция 4), слайд №2Последовательная обработка данных (язык C, лекция 4), слайд №3Последовательная обработка данных (язык C, лекция 4), слайд №4Последовательная обработка данных (язык C, лекция 4), слайд №5Последовательная обработка данных (язык C, лекция 4), слайд №6Последовательная обработка данных (язык C, лекция 4), слайд №7Последовательная обработка данных (язык C, лекция 4), слайд №8Последовательная обработка данных (язык C, лекция 4), слайд №9Последовательная обработка данных (язык C, лекция 4), слайд №10Последовательная обработка данных (язык C, лекция 4), слайд №11Последовательная обработка данных (язык C, лекция 4), слайд №12Последовательная обработка данных (язык C, лекция 4), слайд №13Последовательная обработка данных (язык C, лекция 4), слайд №14Последовательная обработка данных (язык C, лекция 4), слайд №15Последовательная обработка данных (язык C, лекция 4), слайд №16Последовательная обработка данных (язык C, лекция 4), слайд №17Последовательная обработка данных (язык C, лекция 4), слайд №18

Вы можете ознакомиться и скачать презентацию на тему Последовательная обработка данных (язык C, лекция 4). Доклад-сообщение содержит 18 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





  
Лекция 4.
ПОСЛЕДОВАТЕЛЬНАЯ
ОБРАБОТКА ДАННЫХ
Описание слайда:
Лекция 4. ПОСЛЕДОВАТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ

Слайд 2





Последовательная обработка данных
    Задача 4.1. Задана непустая числовая последовательность. Определить, является ли последовательность знакочередующейся. 
Тест1. 	Вход:  	-5    3.1   -2    1   -7
		Выход: Знаки чередуются.

	Тест2. 	Вход: 	-5    3.1   2    -1   7
		Выход: Знаки не чередуются. 

Используем алгоритм 3.3. для обработки последовательности.
Описание слайда:
Последовательная обработка данных Задача 4.1. Задана непустая числовая последовательность. Определить, является ли последовательность знакочередующейся. Тест1. Вход: -5 3.1 -2 1 -7 Выход: Знаки чередуются. Тест2. Вход: -5 3.1 2 -1 7 Выход: Знаки не чередуются. Используем алгоритм 3.3. для обработки последовательности.

Слайд 3





Последовательная обработка данных
          		Одного текущего элемента последовательности недостаточно, будем сохранять два соседних элемента: 
    xpred   – предыдущий элемент последовательности,
x          –    текущий элемент последовательности.
	       При обработке последовательности необходимо искать нарушение знакочередования.
		Используем дополнительную переменную
flag    –  признак  знакочередования.
flag = 1 -  знаки  чередуются, 0 – нет,
    инициализация: flag =1.
Описание слайда:
Последовательная обработка данных Одного текущего элемента последовательности недостаточно, будем сохранять два соседних элемента: xpred – предыдущий элемент последовательности, x – текущий элемент последовательности. При обработке последовательности необходимо искать нарушение знакочередования. Используем дополнительную переменную flag – признак знакочередования. flag = 1 - знаки чередуются, 0 – нет, инициализация: flag =1.

Слайд 4





 Последовательная обработка данных
/* Программа 4.1. Знакочередование   последовательности чисел 	*/
#include <stdio.h>
void main(void)
{   float   xpred, x;         	/* предыдущее и текущее  числа	           	*/
     int  flag = 1;			/* flag = 1 - знаки чередуются, 0 - нет 	*/
 scanf("%f", &xpred) ;
 while( scanf("%f", &x)>0)
 {   if (xpred * x >= 0) flag = 0;
     xpred = x;
 }
 if (flag) printf ("\n Знаки чередуются. ");
 else printf ("\n Знаки не чередуются. ");
}
Описание слайда:
Последовательная обработка данных /* Программа 4.1. Знакочередование последовательности чисел */ #include <stdio.h> void main(void) { float xpred, x; /* предыдущее и текущее числа */ int flag = 1; /* flag = 1 - знаки чередуются, 0 - нет */ scanf("%f", &xpred) ; while( scanf("%f", &x)>0) { if (xpred * x >= 0) flag = 0; xpred = x; } if (flag) printf ("\n Знаки чередуются. "); else printf ("\n Знаки не чередуются. "); }

Слайд 5





Введение в программирование
ПОСЛЕДОВАТЕЛЬНАЯ
ОБРАБОТКА СИМВОЛОВ
Описание слайда:
Введение в программирование ПОСЛЕДОВАТЕЛЬНАЯ ОБРАБОТКА СИМВОЛОВ

Слайд 6





Последовательная обработка символов
Значением символьного  типа  является  одиночный  символ. 
	В языке C символьные данные рассматриваются как разновидность целых чисел. Числовым значением символа является его код. 
	В языке C над символами разрешаются не только операции присваивания и сравнения, но и арифметические операции.
В международном стандарте ASCII код символа обычно занимает один байт, но иногда и два байта (в международном коде UNICODE).
Описание слайда:
Последовательная обработка символов Значением символьного типа является одиночный символ. В языке C символьные данные рассматриваются как разновидность целых чисел. Числовым значением символа является его код. В языке C над символами разрешаются не только операции присваивания и сравнения, но и арифметические операции. В международном стандарте ASCII код символа обычно занимает один байт, но иногда и два байта (в международном коде UNICODE).

Слайд 7





Последовательная обработка символов
Примеры символьных констант:
			‘*’ 		‘a’		‘5’		‘n’
Специальные (управляющие) символьные константы:
	'\n'			Новая строка (new line),
	'\t'	 '\v' 	Табуляция горизонтальная,		                                                     				вертикальная,
	'\b'			Возврат на шаг (backspace),
	'\\'	- \ (обратный слэш),  	'\''	- ‘ (апостроф),  	'\"'	- "  (кавычка),
	'\0'  		      Нулевой символ (байт с нулевым кодом).
Объявление символьных переменных
 char   <имя> [,<имя>]…;   или   int  <имя> [,<имя>]…; 
 Например:
                            char    s,  sim = ‘Z’,   c;
Описание слайда:
Последовательная обработка символов Примеры символьных констант: ‘*’ ‘a’ ‘5’ ‘n’ Специальные (управляющие) символьные константы: '\n' Новая строка (new line), '\t' '\v' Табуляция горизонтальная, вертикальная, '\b' Возврат на шаг (backspace), '\\' - \ (обратный слэш), '\'' - ‘ (апостроф), '\"' - " (кавычка), '\0' Нулевой символ (байт с нулевым кодом). Объявление символьных переменных char <имя> [,<имя>]…; или int <имя> [,<имя>]…; Например: char s, sim = ‘Z’, c;

Слайд 8





Последовательная обработка символов
Кодировка цифровых символов:
	 '0' =               48
 '1' = '0' + 1 = 49 
'2' = '0' + 2 = 50
. . .
'9' = '0' + 9 = 57 
Отсюда соотношения:
Код цифры = '0' + Значение цифры                                    
Значение цифры = Код цифры - '0'
Условие 
"значение символьной переменой s является цифрой" 
на языке C запишется так:
s >= '0' && s <= '9'
Описание слайда:
Последовательная обработка символов Кодировка цифровых символов: '0' = 48 '1' = '0' + 1 = 49 '2' = '0' + 2 = 50 . . . '9' = '0' + 9 = 57 Отсюда соотношения: Код цифры = '0' + Значение цифры Значение цифры = Код цифры - '0' Условие "значение символьной переменой s является цифрой" на языке C запишется так: s >= '0' && s <= '9'

Слайд 9





Последовательная обработка символов
Коды заглавных латинских букв возрастают по алфавиту:
			'A' < 'B' < ... < 'Z' ,	                        
Коды строчных латинских букв возрастают:
			'a' < 'b' < ... < 'z'.
Условие 
"значение символьной переменой s является латинской буквой" 
можно записать так:
(s>='A' && s<='Z') || (s>='a' && s<='z')
Описание слайда:
Последовательная обработка символов Коды заглавных латинских букв возрастают по алфавиту: 'A' < 'B' < ... < 'Z' , Коды строчных латинских букв возрастают: 'a' < 'b' < ... < 'z'. Условие "значение символьной переменой s является латинской буквой" можно записать так: (s>='A' && s<='Z') || (s>='a' && s<='z')

Слайд 10





Последовательная обработка символов
char s;                             ( или  int    s; )
Ввод символа из стандартного входного файла (клавиатуры) в переменную s:
						scanf ("%с", &s);
можно заменить присваиванием
						s = getchar ();
Функция getchar() вводит очередной символ из стандартного входного файла и возвращает в виде значения код этого символа.
Описание слайда:
Последовательная обработка символов char s; ( или int s; ) Ввод символа из стандартного входного файла (клавиатуры) в переменную s: scanf ("%с", &s); можно заменить присваиванием s = getchar (); Функция getchar() вводит очередной символ из стандартного входного файла и возвращает в виде значения код этого символа.

Слайд 11





Последовательная обработка символов
	Ввод символа часто пишется внутри условия в операторах if, while, do-while и for.
Например, цикл ввода символов до конца файла
				Ввод s;
				while(s!= конец файла)
				{   Обработка s;
    			    Ввод s;
				}
	может иметь вид
while ((s=getchar()) != EOF)
       Обработка s;
Описание слайда:
Последовательная обработка символов Ввод символа часто пишется внутри условия в операторах if, while, do-while и for. Например, цикл ввода символов до конца файла Ввод s; while(s!= конец файла) { Обработка s; Ввод s; } может иметь вид while ((s=getchar()) != EOF) Обработка s;

Слайд 12





Последовательная обработка символов
     Символическая константа   EOF - код конца файла (после нажатия клавиш Ctrl-Z или Ctrl-z, затем Enter). 
Вывод символа s в стандартный выходной файл (на экран)
					printf ("%c", s);
	эквивалентен оператору
 					putchar (s);

     Стандартный входной и выходной файлы, вместо клавиатуры и экрана, можно переадресовать на любой файл магнитного диска.
Описание слайда:
Последовательная обработка символов Символическая константа EOF - код конца файла (после нажатия клавиш Ctrl-Z или Ctrl-z, затем Enter). Вывод символа s в стандартный выходной файл (на экран) printf ("%c", s); эквивалентен оператору putchar (s); Стандартный входной и выходной файлы, вместо клавиатуры и экрана, можно переадресовать на любой файл магнитного диска.

Слайд 13





Коды символов
Задача 4.2. Вывести коды введенных с клавиатуры символов. Последовательность завершается нажатием клавиши Esc.
Тест. Вход: Kazan 2007 <Esc>		
Выход: K=82, a=97, z=122, a=97, n= 110,  =32, 2=50, 0=48, 0=48, 7=55,  = 27
Описание слайда:
Коды символов Задача 4.2. Вывести коды введенных с клавиатуры символов. Последовательность завершается нажатием клавиши Esc. Тест. Вход: Kazan 2007 <Esc> Выход: K=82, a=97, z=122, a=97, n= 110, =32, 2=50, 0=48, 0=48, 7=55,  = 27

Слайд 14





Коды символов
/* Программа 4.2.   Коды символов			*/
#include <stdio.h>
#include <conio.h>
     main()
{ int sim;
  printf("\n Введи текст, завершив клавишей Esc\n");
      do
  {  sim=getch(); putchar(sim);
          printf("=%d, ",sim);
   } 
  while( sim!=27);
       puts(" Нажми любую клавишу"); getch();
  return 0;
}
Описание слайда:
Коды символов /* Программа 4.2. Коды символов */ #include <stdio.h> #include <conio.h> main() { int sim; printf("\n Введи текст, завершив клавишей Esc\n"); do { sim=getch(); putchar(sim); printf("=%d, ",sim); } while( sim!=27); puts(" Нажми любую клавишу"); getch(); return 0; }

Слайд 15





Последовательная обработка символов
Подсчет строк, слов и символов
      Задача 4.3. Составить программу подсчета во входном тексте количества строк, слов и символов. 
			Словом считается любая последовательность символов, не содержащая пробелов, символов табуляции и новой строки. Строка заканчивается символом новой строки. 
Тест.	Вход:
                    Если друг оказался вдруг
                    И не друг, и не враг, а так.
	            Выход:
                    Строк: 2, слов: 12, символов: 53.
	     Количество символов считаем сразу после ввода, количество строк – по количеству символов ‘\n’, а количество слов – при вводе символа не разделителя, перед которым был разделитель. Используем для этого флаг разделителя.
Описание слайда:
Последовательная обработка символов Подсчет строк, слов и символов Задача 4.3. Составить программу подсчета во входном тексте количества строк, слов и символов. Словом считается любая последовательность символов, не содержащая пробелов, символов табуляции и новой строки. Строка заканчивается символом новой строки. Тест. Вход: Если друг оказался вдруг И не друг, и не враг, а так. Выход: Строк: 2, слов: 12, символов: 53. Количество символов считаем сразу после ввода, количество строк – по количеству символов ‘\n’, а количество слов – при вводе символа не разделителя, перед которым был разделитель. Используем для этого флаг разделителя.

Слайд 16





Пояснения к программе
switch (переключить) - оператор переключателя для организации многовариантного ветвления. 
	                switch (выражение)
                       { [ case цел-конст-выраж: [оператор...]]...
                         [ default: оператор...]
                         [ case цел-конст-выраж: [оператор...]]...
                       }
case (случай) - вариант ветвления, можно пометить целой или символьной константой (или константным выражением). 
	Вычисляется значение выражения. Переключатель осуществляет переход к одному из вариантов case, константное выражение которого совпадает с вычисленным значением, или к метке default (умолчание), если не совпадает ни с одной из констант вариантов ветвления. 
	Каждый вариант обычно заканчивается оператором break.
Описание слайда:
Пояснения к программе switch (переключить) - оператор переключателя для организации многовариантного ветвления. switch (выражение) { [ case цел-конст-выраж: [оператор...]]... [ default: оператор...] [ case цел-конст-выраж: [оператор...]]... } case (случай) - вариант ветвления, можно пометить целой или символьной константой (или константным выражением). Вычисляется значение выражения. Переключатель осуществляет переход к одному из вариантов case, константное выражение которого совпадает с вычисленным значением, или к метке default (умолчание), если не совпадает ни с одной из констант вариантов ветвления. Каждый вариант обычно заканчивается оператором break.

Слайд 17





Последовательная обработка символов
/* Программа 4.3. Подсчет строк, слов и символов	*/
/* текст	::= символ…					*/
/*  символ	::= разделитель | символ-слова		*/
/*  разделитель ::= пробел | новая-строка | табуляция		*/
/*                               | конец-файла				*/
/*  символ-слова - любой символ, кроме разделителей	*/
#include <stdio.h>
#define  DA   1
#define  NET  0
void main ()
{ int  sim;              	/* Текущий символ (int для EOF) 	*/
  int  kstr, ksl, ksim; 	/* Кол-во строк, слов и символов	*/ 
  int  razdel; 		/* Флаг символа - разделитель		*/
   razdel = DA;		/* 1-й символ текста - начальный	*/
Описание слайда:
Последовательная обработка символов /* Программа 4.3. Подсчет строк, слов и символов */ /* текст ::= символ… */ /* символ ::= разделитель | символ-слова */ /* разделитель ::= пробел | новая-строка | табуляция */ /* | конец-файла */ /* символ-слова - любой символ, кроме разделителей */ #include <stdio.h> #define DA 1 #define NET 0 void main () { int sim; /* Текущий символ (int для EOF) */ int kstr, ksl, ksim; /* Кол-во строк, слов и символов */ int razdel; /* Флаг символа - разделитель */ razdel = DA; /* 1-й символ текста - начальный */

Слайд 18





Подсчет строк, слов и символов
kstr = ksl = ksim = 0;
  while ((sim = getchar()) != EOF)
  {
    ksim++;
    switch (sim)
    {
    case '\n':
       kstr++;					 
       razdel = DA; break; 		/* Эту строчку можно убрать!	    */ 
    case ' ':
    case '\t':
       razdel = DA; break;
    default:			/* Символ слова не разделитель */
       if (razdel)  		   /* Предыдущий символ - разделитель  */
           { ksl++;  razdel = NET; }
    }
  }
 printf ("Строк: %d, слов: %d, символов %d. \n", kstr, ksl, ksim);
}
Описание слайда:
Подсчет строк, слов и символов kstr = ksl = ksim = 0; while ((sim = getchar()) != EOF) { ksim++; switch (sim) { case '\n': kstr++; razdel = DA; break; /* Эту строчку можно убрать! */ case ' ': case '\t': razdel = DA; break; default: /* Символ слова не разделитель */ if (razdel) /* Предыдущий символ - разделитель */ { ksl++; razdel = NET; } } } printf ("Строк: %d, слов: %d, символов %d. \n", kstr, ksl, ksim); }



Похожие презентации
Mypresentation.ru
Загрузить презентацию