🗊Презентация Общий синтаксис языка Си

Нажмите для полного просмотра!
Общий синтаксис языка Си, слайд №1Общий синтаксис языка Си, слайд №2Общий синтаксис языка Си, слайд №3Общий синтаксис языка Си, слайд №4Общий синтаксис языка Си, слайд №5Общий синтаксис языка Си, слайд №6Общий синтаксис языка Си, слайд №7Общий синтаксис языка Си, слайд №8Общий синтаксис языка Си, слайд №9Общий синтаксис языка Си, слайд №10Общий синтаксис языка Си, слайд №11Общий синтаксис языка Си, слайд №12Общий синтаксис языка Си, слайд №13Общий синтаксис языка Си, слайд №14Общий синтаксис языка Си, слайд №15Общий синтаксис языка Си, слайд №16Общий синтаксис языка Си, слайд №17Общий синтаксис языка Си, слайд №18Общий синтаксис языка Си, слайд №19Общий синтаксис языка Си, слайд №20Общий синтаксис языка Си, слайд №21Общий синтаксис языка Си, слайд №22Общий синтаксис языка Си, слайд №23Общий синтаксис языка Си, слайд №24Общий синтаксис языка Си, слайд №25Общий синтаксис языка Си, слайд №26Общий синтаксис языка Си, слайд №27Общий синтаксис языка Си, слайд №28Общий синтаксис языка Си, слайд №29Общий синтаксис языка Си, слайд №30Общий синтаксис языка Си, слайд №31Общий синтаксис языка Си, слайд №32Общий синтаксис языка Си, слайд №33Общий синтаксис языка Си, слайд №34Общий синтаксис языка Си, слайд №35Общий синтаксис языка Си, слайд №36Общий синтаксис языка Си, слайд №37Общий синтаксис языка Си, слайд №38Общий синтаксис языка Си, слайд №39Общий синтаксис языка Си, слайд №40Общий синтаксис языка Си, слайд №41Общий синтаксис языка Си, слайд №42Общий синтаксис языка Си, слайд №43Общий синтаксис языка Си, слайд №44Общий синтаксис языка Си, слайд №45Общий синтаксис языка Си, слайд №46Общий синтаксис языка Си, слайд №47Общий синтаксис языка Си, слайд №48Общий синтаксис языка Си, слайд №49Общий синтаксис языка Си, слайд №50Общий синтаксис языка Си, слайд №51Общий синтаксис языка Си, слайд №52Общий синтаксис языка Си, слайд №53Общий синтаксис языка Си, слайд №54Общий синтаксис языка Си, слайд №55Общий синтаксис языка Си, слайд №56Общий синтаксис языка Си, слайд №57Общий синтаксис языка Си, слайд №58Общий синтаксис языка Си, слайд №59Общий синтаксис языка Си, слайд №60Общий синтаксис языка Си, слайд №61Общий синтаксис языка Си, слайд №62Общий синтаксис языка Си, слайд №63Общий синтаксис языка Си, слайд №64Общий синтаксис языка Си, слайд №65Общий синтаксис языка Си, слайд №66Общий синтаксис языка Си, слайд №67Общий синтаксис языка Си, слайд №68Общий синтаксис языка Си, слайд №69Общий синтаксис языка Си, слайд №70Общий синтаксис языка Си, слайд №71Общий синтаксис языка Си, слайд №72Общий синтаксис языка Си, слайд №73Общий синтаксис языка Си, слайд №74Общий синтаксис языка Си, слайд №75Общий синтаксис языка Си, слайд №76Общий синтаксис языка Си, слайд №77Общий синтаксис языка Си, слайд №78Общий синтаксис языка Си, слайд №79Общий синтаксис языка Си, слайд №80Общий синтаксис языка Си, слайд №81Общий синтаксис языка Си, слайд №82Общий синтаксис языка Си, слайд №83Общий синтаксис языка Си, слайд №84Общий синтаксис языка Си, слайд №85Общий синтаксис языка Си, слайд №86Общий синтаксис языка Си, слайд №87Общий синтаксис языка Си, слайд №88Общий синтаксис языка Си, слайд №89Общий синтаксис языка Си, слайд №90Общий синтаксис языка Си, слайд №91Общий синтаксис языка Си, слайд №92Общий синтаксис языка Си, слайд №93Общий синтаксис языка Си, слайд №94Общий синтаксис языка Си, слайд №95Общий синтаксис языка Си, слайд №96

Содержание

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

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


Слайд 1





Общий синтаксис языка Си
Описание слайда:
Общий синтаксис языка Си

Слайд 2





Зарезервированные слова
int            –  целое
for           –  для
long          –  длинное
while       –  пока 
short         –  короткое 
do            –  выполнить 
unsigned    –  без знака 
signed       –  со знаком 
break       –  завершить 
continue    –  продолжить 
char          –  символьное
Описание слайда:
Зарезервированные слова int – целое for – для long – длинное while – пока short – короткое do – выполнить unsigned – без знака signed – со знаком break – завершить continue – продолжить char – символьное

Слайд 3





Дополнительные зарезервированные слова
для С++
Описание слайда:
Дополнительные зарезервированные слова для С++

Слайд 4





Комментарии
 1)
 /* Короткий комментарий */
 2)
 /* Очень,
                   очень,
                      очень длинный комментарий */
3)
 // Комментарий в языке С++
Описание слайда:
Комментарии 1) /* Короткий комментарий */ 2) /* Очень, очень, очень длинный комментарий */ 3) // Комментарий в языке С++

Слайд 5





Типы величин
Числовые
Целые (short, int, long, unsigned)
С плавающей точкой (float, double)
Текстовые
Одиночные символы (char)
Символьные строки (массив символов)
Логические
1-Истина (или все, что не 0)
0-Ложь
Описание слайда:
Типы величин Числовые Целые (short, int, long, unsigned) С плавающей точкой (float, double) Текстовые Одиночные символы (char) Символьные строки (массив символов) Логические 1-Истина (или все, что не 0) 0-Ложь

Слайд 6





Числовые константы
Целые числа:
1        23            –456
89L - для типа long
012 - восьмеричное число               (1010=1*81+2*80)
0x34A - шестнадцатеричное число (84210=3*162+4*161+10*160)
Десятичные числа с плавающей точкой: 
1.2       –3.45             -.67 (то же, что -0.67) 
3е2 (т.е.3*102) 
7.1e-3 
6.34E-2 
.21e+5
Описание слайда:
Числовые константы Целые числа: 1 23 –456 89L - для типа long 012 - восьмеричное число (1010=1*81+2*80) 0x34A - шестнадцатеричное число (84210=3*162+4*161+10*160) Десятичные числа с плавающей точкой: 1.2 –3.45 -.67 (то же, что -0.67) 3е2 (т.е.3*102) 7.1e-3 6.34E-2 .21e+5

Слайд 7





Числовой тип (Turbo C)
Тип     Размер в байтах       Диапазон значений
----------------------------------------------------------------------------
int                      2                   -32768 ... 32767 (215-1)
unsigned           2                     0 … 65535      (216-1)
short                  2                   -32768 ... 32767
long                   4              –2147483648 … 2147483647 
unsigned long   4                     0 … 4294967295 (232-1)
----------------------------------------------------------------------------
float                  4                   1.5e-45 …3.4e+38
double              8                    5e-324 … 1.7e+308
----------------------------------------------------------------------------
Описание слайда:
Числовой тип (Turbo C) Тип Размер в байтах Диапазон значений ---------------------------------------------------------------------------- int 2 -32768 ... 32767 (215-1) unsigned 2 0 … 65535 (216-1) short 2 -32768 ... 32767 long 4 –2147483648 … 2147483647 unsigned long 4 0 … 4294967295 (232-1) ---------------------------------------------------------------------------- float 4 1.5e-45 …3.4e+38 double 8 5e-324 … 1.7e+308 ----------------------------------------------------------------------------

Слайд 8





Числовой тип (MSVC)
Тип                            Размер в байтах *       
-----------------------------------------------------------
short, unsigned short       2
int, unsigned int               4
long, unsigned long         4
long  long                         8  (9223372036854775807 / 19 зн.)
-----------------------------------------------------------
float                                  4 
double                              8                  
------------------------------------------------------------
Описание слайда:
Числовой тип (MSVC) Тип Размер в байтах * ----------------------------------------------------------- short, unsigned short 2 int, unsigned int 4 long, unsigned long 4 long long 8 (9223372036854775807 / 19 зн.) ----------------------------------------------------------- float 4 double 8 ------------------------------------------------------------

Слайд 9





Символьные константы 
Символьная константа – это один символ, заключенный в одинарные кавычки. Например,  'a'   '*'   'Э'  '>'.
      Некоторые специальные символы языка  Си:
    \n     перевод на новую строку.  \t     табуляция.
    \0     код ASCII равный 0         \\  обратная косая черта.
    \'     одинарная кавычка.           \"     двойная кавычка.
    \(     открывающая скобка.        \)   закрывающая скобка.
    \r     возврат каретки
   Символьная восьмеричная константа записывается в виде  '\ddd' , где ddd – от  одной до трех восьмеричных цифр, например,   '\007'  ( звонок).
Описание слайда:
Символьные константы Символьная константа – это один символ, заключенный в одинарные кавычки. Например, 'a' '*' 'Э' '>'. Некоторые специальные символы языка Си: \n перевод на новую строку. \t табуляция. \0 код ASCII равный 0 \\ обратная косая черта. \' одинарная кавычка. \" двойная кавычка. \( открывающая скобка. \) закрывающая скобка. \r возврат каретки Символьная восьмеричная константа записывается в виде '\ddd' , где ddd – от одной до трех восьмеричных цифр, например, '\007' ( звонок).

Слайд 10





Примеры символьных строк
" ИСТАС " 
что равносильно {’И’,’С’,’Т’,’А’,’С’,’\0’}
или
{’И’,’С’,’Т’,’А’,’С’,0}
 "" 
пустая строка
Описание слайда:
Примеры символьных строк " ИСТАС " что равносильно {’И’,’С’,’Т’,’А’,’С’,’\0’} или {’И’,’С’,’Т’,’А’,’С’,0} "" пустая строка

Слайд 11





Длинные символьные строки
1)
“Очень,\
              очень,\
                  очень длинная строка! “
2)
”Очень, ”
               “очень, ”
                          “очень длинная строка!”
Описание слайда:
Длинные символьные строки 1) “Очень,\ очень,\ очень длинная строка! “ 2) ”Очень, ” “очень, ” “очень длинная строка!”

Слайд 12





Пример описания переменных стандартных типов: 
int i,j,n=3,m=4;
int x[10],y[5]={0,1,2,3,4};
int z[]={1,2,3};
int a[2][3]={{1,2,3},{10,20,30}};
int b[2][3]={1,2,3,10,20,30};
float t;
double r=1e25;
char c,s[80];
char s1[]=”МГСУ”;
char s2[]={’М’,’Г’,’С’,’У’,’\0’};
Описание слайда:
Пример описания переменных стандартных типов: int i,j,n=3,m=4; int x[10],y[5]={0,1,2,3,4}; int z[]={1,2,3}; int a[2][3]={{1,2,3},{10,20,30}}; int b[2][3]={1,2,3,10,20,30}; float t; double r=1e25; char c,s[80]; char s1[]=”МГСУ”; char s2[]={’М’,’Г’,’С’,’У’,’\0’};

Слайд 13





Операции (15 рангов) 
Слева направо
( )          – вызов функции;
[ ]          – доступ к элементу массива;
.            – доступ к элементу структуры или объединения;
–>         – доступ к элементу структуры или объединения, которые описаны с помощью указателя;
Описание слайда:
Операции (15 рангов) Слева направо ( ) – вызов функции; [ ] – доступ к элементу массива; . – доступ к элементу структуры или объединения; –> – доступ к элементу структуры или объединения, которые описаны с помощью указателя;

Слайд 14





Операции (2 ранг из 15) справа налево
++  --    – унарные инкремент и декремент;
sizeof      – размер;
(новый_тип) – явное преобразование типа;
~            – поразрядное (побитовое)  логическое отрицание;
 !            – логическое отрицание;
 –           – унарный минус;
&            – унарная операция получения адреса переменной;
*             – унарная операция получения значения по адресу;
Описание слайда:
Операции (2 ранг из 15) справа налево ++ -- – унарные инкремент и декремент; sizeof – размер; (новый_тип) – явное преобразование типа; ~ – поразрядное (побитовое) логическое отрицание; ! – логическое отрицание; – – унарный минус; & – унарная операция получения адреса переменной; * – унарная операция получения значения по адресу;

Слайд 15





    3 ранг из 15   слева направо
    3 ранг из 15   слева направо
     *         /          %
     – операции умножения, деления, нахождения остатка (при делении целых чисел);
     4 ранг из 15   слева направо
     + -
     – операции сложения и вычитания;
     5 ранг из 15   слева направо
     <<    >>
     – сдвиги влево и вправо;
Описание слайда:
3 ранг из 15 слева направо 3 ранг из 15 слева направо * / % – операции умножения, деления, нахождения остатка (при делении целых чисел); 4 ранг из 15 слева направо + - – операции сложения и вычитания; 5 ранг из 15 слева направо << >> – сдвиги влево и вправо;

Слайд 16





    6 ранг из 15   слева направо
    6 ранг из 15   слева направо
     <   <=   >   >=
     – операции сравнения;
     7 ранг из 15   слева направо
     ==   !=
     – операции проверки равенства и неравенства ;
Описание слайда:
6 ранг из 15 слева направо 6 ранг из 15 слева направо < <= > >= – операции сравнения; 7 ранг из 15 слева направо == != – операции проверки равенства и неравенства ;

Слайд 17





    8 ранг из 15   слева направо
    8 ранг из 15   слева направо
     &
     – побитовая операция И;
     9 ранг из 15   слева направо
     ^
    – побитовая операция исключающее ИЛИ;
     10 ранг из 15   слева направо
     |
     – побитовая операция ИЛИ;
Описание слайда:
8 ранг из 15 слева направо 8 ранг из 15 слева направо & – побитовая операция И; 9 ранг из 15 слева направо ^ – побитовая операция исключающее ИЛИ; 10 ранг из 15 слева направо | – побитовая операция ИЛИ;

Слайд 18





    11 ранг из 15   слева направо
    11 ранг из 15   слева направо
     &&
     – логическая операция И;
     12 ранг из 15   слева направо
     ||
    – логическая операция ИЛИ;
     13 ранг из 15     справа налево
     ?:
     – условная операция;
Описание слайда:
11 ранг из 15 слева направо 11 ранг из 15 слева направо && – логическая операция И; 12 ранг из 15 слева направо || – логическая операция ИЛИ; 13 ранг из 15 справа налево ?: – условная операция;

Слайд 19





    14 ранг из 15   справа налево
    14 ранг из 15   справа налево
     =   +=  -=   *=  /=  %=
      <<=   >>=   &=    ^=   |=
     – присваивание;
     15 ранг из 15   слева направо
     ,
    –  операция запятая;
Описание слайда:
14 ранг из 15 справа налево 14 ранг из 15 справа налево = += -= *= /= %= <<= >>= &= ^= |= – присваивание; 15 ранг из 15 слева направо , – операция запятая;

Слайд 20


Общий синтаксис языка Си, слайд №20
Описание слайда:

Слайд 21





Примеры: 
int i,j,x,y;
i=1; j=1;
x=i++;
y=++j;
======== результат =============
i=2     j=2    x=1     y=2
Описание слайда:
Примеры: int i,j,x,y; i=1; j=1; x=i++; y=++j; ======== результат ============= i=2 j=2 x=1 y=2

Слайд 22





Примеры: 
int i,j,k,m,n;
float x,y;
i=5/2; j=5./2; m=5%2; k=1;
x=5/2; y=5/2.
k+=2; n=k; n*=5;
======== результат =============
i=2 j=2 x=2.0000000 y=2.5000000
m=1 k=3 n=15
Описание слайда:
Примеры: int i,j,k,m,n; float x,y; i=5/2; j=5./2; m=5%2; k=1; x=5/2; y=5/2. k+=2; n=k; n*=5; ======== результат ============= i=2 j=2 x=2.0000000 y=2.5000000 m=1 k=3 n=15

Слайд 23





Примеры: 
int x,y,*p,*q;
x=5; p=&x, q=&y;
y=*p;
*p=7;
======== результат =============
Объект Значение Адрес
  x       7     FF00 
  y       5     FF02
  p     FF00
  q     FF02
Описание слайда:
Примеры: int x,y,*p,*q; x=5; p=&x, q=&y; y=*p; *p=7; ======== результат ============= Объект Значение Адрес x 7 FF00 y 5 FF02 p FF00 q FF02

Слайд 24





Примеры: 
int a,b,c,d,f1,f2,f3,f3,f4;
f1=5;     /* пусть   f1=00000000000001012   = 510   */
f2=3;     /* пусть   f2=00000000000000112   = 310   */
f3=f1&f2; /* тогда   f3=00000000000000012   = 110    */
f4=f1>>1; /* тогда   f4=00000000000000102  = 210   */
f5=f2<<2; /* тогда   f5=00000000000011002  = 1210  */
f1=f2^f3; /* тогда   f1=00000000000000102  = 210     */
f2=f1|f3; /* тогда   f2=00000000000000112  = 310     */
f2=~f2;   /* тогда   f2=11111111111111002  = 6553210  */

a=2; b=5; c= a & b; d= a && b;
===== результат ==============
      c=0   d=1
Описание слайда:
Примеры: int a,b,c,d,f1,f2,f3,f3,f4; f1=5; /* пусть f1=00000000000001012 = 510 */ f2=3; /* пусть f2=00000000000000112 = 310 */ f3=f1&f2; /* тогда f3=00000000000000012 = 110 */ f4=f1>>1; /* тогда f4=00000000000000102 = 210 */ f5=f2<<2; /* тогда f5=00000000000011002 = 1210 */ f1=f2^f3; /* тогда f1=00000000000000102 = 210 */ f2=f1|f3; /* тогда f2=00000000000000112 = 310 */ f2=~f2; /* тогда f2=11111111111111002 = 6553210 */ a=2; b=5; c= a & b; d= a && b; ===== результат ============== c=0 d=1

Слайд 25





Пример 1:
Пример 1:
if (x>y) z=x; else z=y;
Пример 2:
z = (x>y) ? x : y;

Пример 3: 
Проверить условие:   x  (-1.5 , 1.5)  [5,10)

float x; ...
if (fabs(x)<1.5 || x>=5 && x<10) ...
Описание слайда:
Пример 1: Пример 1: if (x>y) z=x; else z=y; Пример 2: z = (x>y) ? x : y; Пример 3: Проверить условие: x  (-1.5 , 1.5)  [5,10) float x; ... if (fabs(x)<1.5 || x>=5 && x<10) ...

Слайд 26





Упражнение 1.
Упражнение 1.
int x,y,z,u,v,w;
x=1; y=2; z=0;
if(x==y) u=1; else u=0;
if(x=y)  v=1; else v=0;
if(x=z)  w=1; else w=0;
===============================
u=?      v=?       w=?
===============================

Упражнение 2.
Верны ли равенства:
а) a>>4=a*16
б) a<<2=a/4
Описание слайда:
Упражнение 1. Упражнение 1. int x,y,z,u,v,w; x=1; y=2; z=0; if(x==y) u=1; else u=0; if(x=y) v=1; else v=0; if(x=z) w=1; else w=0; =============================== u=? v=? w=? =============================== Упражнение 2. Верны ли равенства: а) a>>4=a*16 б) a<<2=a/4

Слайд 27





Пример
Пример

main()
{
int i,z[16];
char c;
unsigned u=1;
clrscr();
printf("Нажмите клавишу:");
c=getch();
for(i=15;i>=0;i--)
	{
	z[i] = u & c ? 1 : 0;
	u<<=1;
	}
printf("\n%c - %d - \n",c,c);
for(i=0;i<16;i++)
	printf("%d ",z[i]);
getch();
}
Описание слайда:
Пример Пример main() { int i,z[16]; char c; unsigned u=1; clrscr(); printf("Нажмите клавишу:"); c=getch(); for(i=15;i>=0;i--) { z[i] = u & c ? 1 : 0; u<<=1; } printf("\n%c - %d - \n",c,c); for(i=0;i<16;i++) printf("%d ",z[i]); getch(); }

Слайд 28





Оператор: 
{  составной_оператор  }
выражение ;
if (выражение) оператор 
if (выражение) оператор  else оператор 
while (выражение) оператор 
do  оператор while (выражение) ;
for (выражение1 ; выражение2 ; выражение3 ) оператор 
switch(выражение ){
		case константное_выражение : оператор 
		…
		default : оператор 
              }
break;
continue;
return;
return выражение ;
goto идентификатор ;
идентификатор : оператор 
;    (пустой оператор)
Описание слайда:
Оператор: { составной_оператор } выражение ; if (выражение) оператор if (выражение) оператор else оператор while (выражение) оператор do оператор while (выражение) ; for (выражение1 ; выражение2 ; выражение3 ) оператор switch(выражение ){ case константное_выражение : оператор … default : оператор } break; continue; return; return выражение ; goto идентификатор ; идентификатор : оператор ; (пустой оператор)

Слайд 29





Пример: найти u=max{x,y}, v=min{x,y)
#include <stdio.h>
#include <conio.h>
main()
{
int x,y,u,v;
clrscr();
printf(”Введите x,y:”);
scanf(”%d%d”,&x,&y);
if(x>y)
		{
		u=x; v=y;
		}
else
		{
		u=y; v=x;
		}
printf(”\n u=%d \n v=%d”,u,v);
getch();
}
Описание слайда:
Пример: найти u=max{x,y}, v=min{x,y) #include <stdio.h> #include <conio.h> main() { int x,y,u,v; clrscr(); printf(”Введите x,y:”); scanf(”%d%d”,&x,&y); if(x>y) { u=x; v=y; } else { u=y; v=x; } printf(”\n u=%d \n v=%d”,u,v); getch(); }

Слайд 30





Пример: найти u=max{x,y,z}
#include <stdio.h>
#include <conio.h>
main()
{
int x,y,z,u;
clrscr();
printf(”Введите x,y,z:”);
scanf(”%d%d%d”,&x,&y,&z);
if(x>y)
	if(x>z)
		u=x;
	else
		u=z;
else
	if(y>z)
		u=y;
	else
		u=z;
printf(”\n u=%d”,u);
getch();
}
Описание слайда:
Пример: найти u=max{x,y,z} #include <stdio.h> #include <conio.h> main() { int x,y,z,u; clrscr(); printf(”Введите x,y,z:”); scanf(”%d%d%d”,&x,&y,&z); if(x>y) if(x>z) u=x; else u=z; else if(y>z) u=y; else u=z; printf(”\n u=%d”,u); getch(); }

Слайд 31





Пример: найти сумму положительных, отрицательные распечатать
#include <stdio.h>
#include <conio.h>
main()
{
int x,y,z,s;
clrscr();
printf(”Введите x,y,z:”);
scanf(”%d%d%d”,&x,&y,&z);
s=0;
if(x>=0)
	s+=x;
else
	printf(”\n x=%d”,x);
if(y>=0)
	s+=y;
else
	printf(”\n y=%d”,y);
if(z>=0)
	s+=z;
else
	printf(”\n z=%d”,z);
printf(”\n s=%d”,s);
getch();
}
Описание слайда:
Пример: найти сумму положительных, отрицательные распечатать #include <stdio.h> #include <conio.h> main() { int x,y,z,s; clrscr(); printf(”Введите x,y,z:”); scanf(”%d%d%d”,&x,&y,&z); s=0; if(x>=0) s+=x; else printf(”\n x=%d”,x); if(y>=0) s+=y; else printf(”\n y=%d”,y); if(z>=0) s+=z; else printf(”\n z=%d”,z); printf(”\n s=%d”,s); getch(); }

Слайд 32





Форматы:
Описание слайда:
Форматы:

Слайд 33





Форматы 
Общий вид для вывода: 
% [-][+] [ширина][.точность] {символ_преобразования}
[-] выравнивание влево,
[+] печать знака плюс
Точность:
для f - дробная часть,
для e - число значащих цифр
для s – число выводимых символов
Общий вид для ввода: 
% [*] [ширина] {символ_преобразования}
[*] – пропуск поля во входном потоке
Описание слайда:
Форматы Общий вид для вывода: % [-][+] [ширина][.точность] {символ_преобразования} [-] выравнивание влево, [+] печать знака плюс Точность: для f - дробная часть, для e - число значащих цифр для s – число выводимых символов Общий вид для ввода: % [*] [ширина] {символ_преобразования} [*] – пропуск поля во входном потоке

Слайд 34





Примеры: 
main()
{
int x;
double y;
clrscr();                    Результат
x=15;y=12.345;               1===5===10===========
printf("\n%d",x);            15
printf("\n%5d",x);              15   
printf("\n%-5d",x);          15
printf("\n%f",y);            12.345000
printf("\n%10.2f",y);             12.35
printf("\n%1.1f",y);         12.3
printf("\n%10.3e",y);          1.23e+01
getch();                     =====================
}
Описание слайда:
Примеры: main() { int x; double y; clrscr(); Результат x=15;y=12.345; 1===5===10=========== printf("\n%d",x); 15 printf("\n%5d",x); 15 printf("\n%-5d",x); 15 printf("\n%f",y); 12.345000 printf("\n%10.2f",y); 12.35 printf("\n%1.1f",y); 12.3 printf("\n%10.3e",y); 1.23e+01 getch(); ===================== }

Слайд 35





Пример для switch: 
main()
{
int k=1;
char c;
while(k)
	{
	printf("Введите ответ Y/N?");
	c=getch();
	switch(c)
		{
		case 'y':
		case 'Y': printf("\nYes"); k=0; break;
		case 'n':
		case 'N': printf("\nNo"); k=0; break;
		default: printf("\nОшибка\nПовторите ввод\n");
		}
	getch();
	}
}
Описание слайда:
Пример для switch: main() { int k=1; char c; while(k) { printf("Введите ответ Y/N?"); c=getch(); switch(c) { case 'y': case 'Y': printf("\nYes"); k=0; break; case 'n': case 'N': printf("\nNo"); k=0; break; default: printf("\nОшибка\nПовторите ввод\n"); } getch(); } }

Слайд 36


Общий синтаксис языка Си, слайд №36
Описание слайда:

Слайд 37


Общий синтаксис языка Си, слайд №37
Описание слайда:

Слайд 38


Общий синтаксис языка Си, слайд №38
Описание слайда:

Слайд 39





Примеры: 
int x[5]={1,2,3,4,5};
int i,s;
s=0;
for(i=0; i<5; i++) s+=x[i];

s=0; i=0;
while (i<5) 
		{
		s+=x[i]; i++;
		} 

s=0; i=0;
do   {
s+=x[i]; i++;
} while (i<5);
Описание слайда:
Примеры: int x[5]={1,2,3,4,5}; int i,s; s=0; for(i=0; i<5; i++) s+=x[i]; s=0; i=0; while (i<5) { s+=x[i]; i++; } s=0; i=0; do { s+=x[i]; i++; } while (i<5);

Слайд 40





Примеры: 
#include <alloc.h>
/* #include <malloc.h> для c++ */
int i,n,*x;
printf(”Введите n:”);
scanf(”%d”,&n);
x=(int*)malloc(n*sizeof(int));
printf(”\nВведите элементы массива:”);
for(i=0;i<n;i++)
		scanf(”%d”,&x[i]);     /* scanf(”%d”,x+i); */
printf(”\nИсходный массив:\n”);
for(i=0;i<n;i++)
		printf(”%d ”,x[i]);
. . .
free(x);
Описание слайда:
Примеры: #include <alloc.h> /* #include <malloc.h> для c++ */ int i,n,*x; printf(”Введите n:”); scanf(”%d”,&n); x=(int*)malloc(n*sizeof(int)); printf(”\nВведите элементы массива:”); for(i=0;i<n;i++) scanf(”%d”,&x[i]); /* scanf(”%d”,x+i); */ printf(”\nИсходный массив:\n”); for(i=0;i<n;i++) printf(”%d ”,x[i]); . . . free(x);

Слайд 41





Пример: среднее значение положительных элементов
#include <stdio.h>
#include <conio.h>
#include <alloc.h> /* #include <malloc.h> для c++ */
main()
{
int i,n,k,*x;
float s;
printf(”Введите n:”);
scanf(”%d”,&n);
x=(int*)malloc(n*sizeof(int));
printf(”\nВведите элементы массива:”);
for(i=0;i<n;i++)
		scanf(”%d”,&x[i]);
printf(”\nИсходный массив:\n”);
for(i=0;i<n;i++)
		printf(”%d ”,x[i]);
Описание слайда:
Пример: среднее значение положительных элементов #include <stdio.h> #include <conio.h> #include <alloc.h> /* #include <malloc.h> для c++ */ main() { int i,n,k,*x; float s; printf(”Введите n:”); scanf(”%d”,&n); x=(int*)malloc(n*sizeof(int)); printf(”\nВведите элементы массива:”); for(i=0;i<n;i++) scanf(”%d”,&x[i]); printf(”\nИсходный массив:\n”); for(i=0;i<n;i++) printf(”%d ”,x[i]);

Слайд 42





Пример: среднее значение положительных элементов
s=0; k=0;
for(i=0; i<n; i++)
		if(x[i]>0){
					k++; s+=x[i];
				   }
if(k)s/=k;   /* if(k>0)s=s/k; */
printf(”\ns=%f”,s);
getch();
Описание слайда:
Пример: среднее значение положительных элементов s=0; k=0; for(i=0; i<n; i++) if(x[i]>0){ k++; s+=x[i]; } if(k)s/=k; /* if(k>0)s=s/k; */ printf(”\ns=%f”,s); getch();

Слайд 43





Пример: максимальное значение и его индекс
k=0; r=x[0]; 
for(i=1; i<n; i++)
		if(x[i]>r){
					r=x[i]; k=i;
				   }
printf(”\nx[%d]=%d”,k,r);
getch();
Описание слайда:
Пример: максимальное значение и его индекс k=0; r=x[0]; for(i=1; i<n; i++) if(x[i]>r){ r=x[i]; k=i; } printf(”\nx[%d]=%d”,k,r); getch();

Слайд 44





Пример: минимальное значение среди положительных
k=-1; r=MAXINT; /* <values.h> */
for(i=0; i<n; i++)
		{
		if(x[i]<=0) continue;
		if(x[i]<r){
				r=x[i]; k=i;
				}
		}
if(k==-1)
	printf(”\nПоложительных элементов нет”);
else
	printf(”\nx[%d]=%d”,k,r);
getch();
Описание слайда:
Пример: минимальное значение среди положительных k=-1; r=MAXINT; /* <values.h> */ for(i=0; i<n; i++) { if(x[i]<=0) continue; if(x[i]<r){ r=x[i]; k=i; } } if(k==-1) printf(”\nПоложительных элементов нет”); else printf(”\nx[%d]=%d”,k,r); getch();

Слайд 45





Пример: максимальное значение среди отрицательных
k=-1; r=-1e25;
for(i=0; i<n; i++)
		{
		if(x[i]>=0) continue;
		if(x[i]>r){
				r=x[i]; k=i;
				}
		}
if(k==-1)
	printf(”\nОтрицательных элементов нет”);
else
	printf(”\nx[%d]=%f”,k,r);
getch();
Описание слайда:
Пример: максимальное значение среди отрицательных k=-1; r=-1e25; for(i=0; i<n; i++) { if(x[i]>=0) continue; if(x[i]>r){ r=x[i]; k=i; } } if(k==-1) printf(”\nОтрицательных элементов нет”); else printf(”\nx[%d]=%f”,k,r); getch();

Слайд 46





Пример: произведение до первого 0 и сумма остальных
s=0; p=1;
for(i=0; i<n; i++)
		{
		if(x[i]==0) break;
		p*=x[i];
		}
for(j=i+1; j<n; j++)
		s+=x[j];
printf(”\ns=%f”,s);
printf(”\np=%f”,p);
getch();
Описание слайда:
Пример: произведение до первого 0 и сумма остальных s=0; p=1; for(i=0; i<n; i++) { if(x[i]==0) break; p*=x[i]; } for(j=i+1; j<n; j++) s+=x[j]; printf(”\ns=%f”,s); printf(”\np=%f”,p); getch();

Слайд 47





Пример: переписать массив в обратном порядке
printf(”\nИсходный массив:\n”);
for(i=0;i<n;i++)
		printf(”%d ”,x[i]);
for(i=0; i<n/2; i++)
		{
		r=x[i];
		x[i]=x[n-i-1];
		x[n-i-1]=r;
		}
printf(”\nПреобразованный массив:\n”);
for(i=0;i<n;i++)
		printf(”%d ”,x[i]);
getch();
Описание слайда:
Пример: переписать массив в обратном порядке printf(”\nИсходный массив:\n”); for(i=0;i<n;i++) printf(”%d ”,x[i]); for(i=0; i<n/2; i++) { r=x[i]; x[i]=x[n-i-1]; x[n-i-1]=r; } printf(”\nПреобразованный массив:\n”); for(i=0;i<n;i++) printf(”%d ”,x[i]); getch();

Слайд 48





Пример: сортировка массива по возрастанию
k=1;
while(k)
	{
	k=0;
	for(i=0; i<n-1; i++)
		if(x[i]>x[i+1])
					{
					k=1;
					r=x[i];
					x[i]=x[i+1];
					x[i+1]=r;
					}

	}
Описание слайда:
Пример: сортировка массива по возрастанию k=1; while(k) { k=0; for(i=0; i<n-1; i++) if(x[i]>x[i+1]) { k=1; r=x[i]; x[i]=x[i+1]; x[i+1]=r; } }

Слайд 49





Примеры: 
#include <alloc.h>
/* #include <malloc.h> для c++ */
int i,j,n,m,**a;
printf(”Введите n и m:”);
scanf(”%d%d”,&n,&m);
a=(int**)malloc(n*sizeof(int*));
for(i=0;i<n;i++)
	a[i]=(int*)malloc(m*sizeof(int));
printf(”\nВведите элементы массива:”);
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
	   scanf(”%d”,&a[i][j]);
printf(”\nМатрица A:\n”);
for(i=0;i<n;i++)
	{
	for(j=0;j<m;j++)
	   printf(”%5d”,a[i][j]);
	printf(”\n”);
	}
Описание слайда:
Примеры: #include <alloc.h> /* #include <malloc.h> для c++ */ int i,j,n,m,**a; printf(”Введите n и m:”); scanf(”%d%d”,&n,&m); a=(int**)malloc(n*sizeof(int*)); for(i=0;i<n;i++) a[i]=(int*)malloc(m*sizeof(int)); printf(”\nВведите элементы массива:”); for(i=0;i<n;i++) for(j=0;j<m;j++) scanf(”%d”,&a[i][j]); printf(”\nМатрица A:\n”); for(i=0;i<n;i++) { for(j=0;j<m;j++) printf(”%5d”,a[i][j]); printf(”\n”); }

Слайд 50





РАБОТА  С  ФАЙЛАМИ
Объявление файла производится следующим образом: 
          FILE  указатель файла1[,..,указатель файлаN];
Например
			FILE *in, *out, *f1;
 Открытие файла:
 указатель_файла=fopen(имя_файла, режим_работы);
 Возможны следующие режимы работы:
 r    – открытие файла на чтение (при этом открываемый файл должен существовать);
 w    – открытие файла на запись (если открываемого файла нет, то он будет создан; если этот файл уже есть, то его  содержимое стирается);
 a    – открытие файла  на дозапись (при этом, если файла нет, то он создается);
 r+  – открытие файла  на чтение и запись (при этом открываемый файл должен существовать);
 w+  – открытие файла  на чтение и запись (при этом содержимое открываемого файла стирается);
 a+  – открытие файла  на чтение и дозапись (при этом, если файла нет, то он создается).
Описание слайда:
РАБОТА С ФАЙЛАМИ Объявление файла производится следующим образом: FILE указатель файла1[,..,указатель файлаN]; Например FILE *in, *out, *f1; Открытие файла: указатель_файла=fopen(имя_файла, режим_работы); Возможны следующие режимы работы: r – открытие файла на чтение (при этом открываемый файл должен существовать); w – открытие файла на запись (если открываемого файла нет, то он будет создан; если этот файл уже есть, то его содержимое стирается); a – открытие файла на дозапись (при этом, если файла нет, то он создается); r+ – открытие файла на чтение и запись (при этом открываемый файл должен существовать); w+ – открытие файла на чтение и запись (при этом содержимое открываемого файла стирается); a+ – открытие файла на чтение и дозапись (при этом, если файла нет, то он создается).

Слайд 51





РАБОТА  С  ФАЙЛАМИ
Пример
	if((in=fopen("myfile.dat","r"))==NULL)
		{ printf("\n Файл myfile.dat не открыт."); exit(1);}

Закрытие файла осуществляет функция  
fclose(указатель_файла);
Описание слайда:
РАБОТА С ФАЙЛАМИ Пример if((in=fopen("myfile.dat","r"))==NULL) { printf("\n Файл myfile.dat не открыт."); exit(1);} Закрытие файла осуществляет функция fclose(указатель_файла);

Слайд 52





РАБОТА  С  ФАЙЛАМИ
Пример

#include <stdio.h>
#include <alloc.h> /* #include <malloc.h> для c++ */

main()
{
int i,n,*x;
FILE *in,*out;
in=fopen(”mas.dat","r");
out=fopen(”mas.res","w");
scanf(”%d”,&n);
x=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++) fscanf(in,”%d”,&x[i]);
fprintf(out,”Массив X\n”);
for(i=0;i<n;i++) fprintf(out,”%d ”,x[i]);
fclose(in); fclose(out);
. . .
}
Описание слайда:
РАБОТА С ФАЙЛАМИ Пример #include <stdio.h> #include <alloc.h> /* #include <malloc.h> для c++ */ main() { int i,n,*x; FILE *in,*out; in=fopen(”mas.dat","r"); out=fopen(”mas.res","w"); scanf(”%d”,&n); x=(int*)malloc(n*sizeof(int)); for(i=0;i<n;i++) fscanf(in,”%d”,&x[i]); fprintf(out,”Массив X\n”); for(i=0;i<n;i++) fprintf(out,”%d ”,x[i]); fclose(in); fclose(out); . . . }

Слайд 53





Работа со стандартным файлом:
Работа со стандартным файлом:
   scanf ( управляющая строка, данные );
   printf (управляющая строка,данные);
   gets ( имя_строки ); 			
   puts( строка или имя строки ); 
   getchar();
   getch();
   getche();
   putchar( символ или имя_символа )
Описание слайда:
Работа со стандартным файлом: Работа со стандартным файлом: scanf ( управляющая строка, данные ); printf (управляющая строка,данные); gets ( имя_строки ); puts( строка или имя строки ); getchar(); getch(); getche(); putchar( символ или имя_символа )

Слайд 54





Работа с произвольным файлом: 
Работа с произвольным файлом: 
fscanf(указатель_файла,управляющая_строка, данные);
fprintf(указатель файла,управляющая строка, данные);
fgets ( имя_строки,колич.симв.,указ._файла ); 
fputs ( строка или имя_строки,указ._файла );
getc ( указатель_файла) ; 			
putc( символ или имя_символа,указ._файла);
Описание слайда:
Работа с произвольным файлом: Работа с произвольным файлом: fscanf(указатель_файла,управляющая_строка, данные); fprintf(указатель файла,управляющая строка, данные); fgets ( имя_строки,колич.симв.,указ._файла ); fputs ( строка или имя_строки,указ._файла ); getc ( указатель_файла) ; putc( символ или имя_символа,указ._файла);

Слайд 55





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
main()
{
int c;
FILE *in;
clrscr();
in=fopen("str1.dat","r");
while((c=getc(in))!=EOF)
	putchar(c);
getch();
}

STR1.DAT
==========
Раз Два
Три
Четыре Пять
Все!
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> main() { int c; FILE *in; clrscr(); in=fopen("str1.dat","r"); while((c=getc(in))!=EOF) putchar(c); getch(); } STR1.DAT ========== Раз Два Три Четыре Пять Все!

Слайд 56





Двоичные файлы. Бесформатный ввод-вывод:
Двоичные файлы. Бесформатный ввод-вывод:

fread(куда, размер, сколько, указатель_файла);
	 – для чтения из файла,
fwrite (откуда, размер, сколько,указатель_файла); 
	– для записи в файл. 

    При этом, в fopen
    режим дополняется опцией ”b” 
    (двоичный файл),  например, 
     "wb+" 
     (по умолчанию действует ”t” 
     — текстовый файл).
Описание слайда:
Двоичные файлы. Бесформатный ввод-вывод: Двоичные файлы. Бесформатный ввод-вывод: fread(куда, размер, сколько, указатель_файла); – для чтения из файла, fwrite (откуда, размер, сколько,указатель_файла); – для записи в файл. При этом, в fopen режим дополняется опцией ”b” (двоичный файл), например, "wb+" (по умолчанию действует ”t” — текстовый файл).

Слайд 57





Двоичные файлы. Бесформатный ввод-вывод:
Двоичные файлы. Бесформатный ввод-вывод:

ПРИМЕР:

#include<stdio.h>
main( )
{
FILE *in;
int i,a[10]={1,2,3,4,5,6,7,8,9,10},b[10];
in=fopen("D:\\ISTAS\\myfile.dat","wb+"); 
fwrite(a,2,10,in);
rewind(in);  
fread (b,2,10,in); puts ("\nМассивB\n");
for (i=0;i<10;i++)
    printf (" %d",b[i]); 
}
Описание слайда:
Двоичные файлы. Бесформатный ввод-вывод: Двоичные файлы. Бесформатный ввод-вывод: ПРИМЕР: #include<stdio.h> main( ) { FILE *in; int i,a[10]={1,2,3,4,5,6,7,8,9,10},b[10]; in=fopen("D:\\ISTAS\\myfile.dat","wb+"); fwrite(a,2,10,in); rewind(in); fread (b,2,10,in); puts ("\nМассивB\n"); for (i=0;i<10;i++) printf (" %d",b[i]); }

Слайд 58





Указание позиции при работе с файлом:
Указание позиции при работе с файлом:

ftell (указатель файла); 
fseek( указатель_файла, величина_сдвига, точка_отсчета); 

SEEK_SET    –   начало файла,
SEEK_CUR  –  текущая позиция,
SEEK_END  –  конец файла.
Описание слайда:
Указание позиции при работе с файлом: Указание позиции при работе с файлом: ftell (указатель файла); fseek( указатель_файла, величина_сдвига, точка_отсчета); SEEK_SET – начало файла, SEEK_CUR – текущая позиция, SEEK_END – конец файла.

Слайд 59





#include<stdio.h>
#include<stdio.h>
main()
{
FILE *out;
int i,a[20],b[20];
out=fopen ("fa","w+");
for (i=1;i<100;i+=5) fprintf (out," %d ",i);
fputs ("\n ИСТАС-",out); putc ('I',out);
printf ("\n Текущая позиция =%ld\n", ftell(out));
rewind (out);
printf ("\n Текущая позиция N =%ld\n", ftell(out));
for (i=0;i<19;i++) fscanf (out,"%d",&a[i]);
for (i=0;i<19;i++) printf ("%d ",a[i]);  
rewind (out);
for (i=0;i<9;i++) fscanf (out,"%d",&b[i]);
fseek (out, 0, SEEK_CUR);
for (i=0;i<9;i++) fprintf (out,"%3d ",b[i]);
fseek (out, -36L, SEEK_CUR);
for (i=9;i<19;i++) fscanf (out,"%d",&b[i]);
for (i=0;i<19;i++) printf ("%d ",b[i]);
}
Описание слайда:
#include<stdio.h> #include<stdio.h> main() { FILE *out; int i,a[20],b[20]; out=fopen ("fa","w+"); for (i=1;i<100;i+=5) fprintf (out," %d ",i); fputs ("\n ИСТАС-",out); putc ('I',out); printf ("\n Текущая позиция =%ld\n", ftell(out)); rewind (out); printf ("\n Текущая позиция N =%ld\n", ftell(out)); for (i=0;i<19;i++) fscanf (out,"%d",&a[i]); for (i=0;i<19;i++) printf ("%d ",a[i]); rewind (out); for (i=0;i<9;i++) fscanf (out,"%d",&b[i]); fseek (out, 0, SEEK_CUR); for (i=0;i<9;i++) fprintf (out,"%3d ",b[i]); fseek (out, -36L, SEEK_CUR); for (i=9;i<19;i++) fscanf (out,"%d",&b[i]); for (i=0;i<19;i++) printf ("%d ",b[i]); }

Слайд 60





Применение двоичного файла для хранения исходных данных.
Описание слайда:
Применение двоичного файла для хранения исходных данных.

Слайд 61





Применение двоичного файла для хранения исходных данных.
Описание слайда:
Применение двоичного файла для хранения исходных данных.

Слайд 62





Функции
Функции
 Функция задаётся следующим образом:
      тип_функции имя_функции (формальные аргументы)
      {
	  текст
      }
имя_функции – это идентификатор;
формальные_аргументы – это список имен аргументов, 
которые будут переданы функции.
Функция не может быть описана внутри других функций.
К заданной функции можно обратиться из любой другой функции, при этом возможны две формы обращения:
1.
 имя_переменной = имя_функции(фактические аргументы);
2.
имя_функции(фактические аргументы);

 	Фактические_аргументы должны соответствовать формальным по  количеству, типу и порядку следования.
Описание слайда:
Функции Функции Функция задаётся следующим образом: тип_функции имя_функции (формальные аргументы) { текст } имя_функции – это идентификатор; формальные_аргументы – это список имен аргументов, которые будут переданы функции. Функция не может быть описана внутри других функций. К заданной функции можно обратиться из любой другой функции, при этом возможны две формы обращения: 1. имя_переменной = имя_функции(фактические аргументы); 2. имя_функции(фактические аргументы); Фактические_аргументы должны соответствовать формальным по количеству, типу и порядку следования.

Слайд 63





Функции
void swap(int *x, int *y)
{
int z;
z=*x; *x=*y; *y=z;
return;
}

void noswap(int x, int y)
{
int z;
z=x; x=y; y=z;
return;
}
Описание слайда:
Функции void swap(int *x, int *y) { int z; z=*x; *x=*y; *y=z; return; } void noswap(int x, int y) { int z; z=x; x=y; y=z; return; }

Слайд 64





Пример: сумма элементов массива
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
/* #include <malloc.h> для c++ */


int xsum(int n, int *x)
{
int i,s;
for(s=0,i=0; i<n; i++)
			s+=x[i];
return s;
}
Описание слайда:
Пример: сумма элементов массива #include <stdio.h> #include <conio.h> #include <alloc.h> /* #include <malloc.h> для c++ */ int xsum(int n, int *x) { int i,s; for(s=0,i=0; i<n; i++) s+=x[i]; return s; }

Слайд 65





Пример: максимальный элемент и его индекс
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
/* #include <malloc.h> для c++ */
void xmax(
int n, int*x, int*r, int*k)
{
int i;
*r=x[0]; *k=0;
for(i=1;i<n;i++)
	if (x[i]>*r) 
		{
		*r=x[i]; *k=i;
		}
return;
}
Описание слайда:
Пример: максимальный элемент и его индекс #include <stdio.h> #include <conio.h> #include <alloc.h> /* #include <malloc.h> для c++ */ void xmax( int n, int*x, int*r, int*k) { int i; *r=x[0]; *k=0; for(i=1;i<n;i++) if (x[i]>*r) { *r=x[i]; *k=i; } return; }

Слайд 66





В какой строке максимальная сумма положительных элементов?
#include <...>
main()
{
int i,j,n,m,k,r,*x,*s,**a;
printf(”Введите n и m:”);
scanf(”%d%d”,&n,&m);
x=(int*)malloc(m*sizeof(int));
s=(int*)malloc(n*sizeof(int));
a=(int**)malloc(n*sizeof(int*));
for(i=0;i<n;i++)
 a[i]=(int*)malloc(m*sizeof(int));
printf(”\nВведите элементы A:”);
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
	   scanf(”%d”,&a[i][j]);
printf(”\nМатрица A:\n”);
for(i=0;i<n;i++)
	{
	for(j=0;j<m;j++)
	   printf(”%5d”,a[i][j]);
	printf(”\n”);
	}
Описание слайда:
В какой строке максимальная сумма положительных элементов? #include <...> main() { int i,j,n,m,k,r,*x,*s,**a; printf(”Введите n и m:”); scanf(”%d%d”,&n,&m); x=(int*)malloc(m*sizeof(int)); s=(int*)malloc(n*sizeof(int)); a=(int**)malloc(n*sizeof(int*)); for(i=0;i<n;i++) a[i]=(int*)malloc(m*sizeof(int)); printf(”\nВведите элементы A:”); for(i=0;i<n;i++) for(j=0;j<m;j++) scanf(”%d”,&a[i][j]); printf(”\nМатрица A:\n”); for(i=0;i<n;i++) { for(j=0;j<m;j++) printf(”%5d”,a[i][j]); printf(”\n”); }

Слайд 67





В какой строке максимальная сумма положительных элементов?
Будет ли правильно работать такой вариант?

int xsum(int n, int *x)
{
int i,s;
for(s=0,i=0; i<n; i++)
			s+=x[i];
return s;
}
Описание слайда:
В какой строке максимальная сумма положительных элементов? Будет ли правильно работать такой вариант? int xsum(int n, int *x) { int i,s; for(s=0,i=0; i<n; i++) s+=x[i]; return s; }

Слайд 68





Работа с объектами символьного типа
Описание слайда:
Работа с объектами символьного типа

Слайд 69





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
int strlength1(char s[])
{
int i=0;
while(s[i]!='\0')i++;
	/*
	while(s[i]!=0)i++;
	или
	while(s[i])i++;
	или
	for(i=0;s[i]!=0;i++);
	или
	for(i=0;s[i];i++);
	*/
return i;
}
int strlength2(char *s)
{
int i=0;
while(*s++)i++;
return i;
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> int strlength1(char s[]) { int i=0; while(s[i]!='\0')i++; /* while(s[i]!=0)i++; или while(s[i])i++; или for(i=0;s[i]!=0;i++); или for(i=0;s[i];i++); */ return i; } int strlength2(char *s) { int i=0; while(*s++)i++; return i; }

Слайд 70





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
strcopy1(
char s[],char t[])
{
int i=0;
while(s[i]=t[i])i++;
return;
}

strcopy2(
char *s,char *t)
{
while(*s++=*t++);
return;
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> strcopy1( char s[],char t[]) { int i=0; while(s[i]=t[i])i++; return; } strcopy2( char *s,char *t) { while(*s++=*t++); return; }

Слайд 71





Некоторые функции <string.h> 
 strlen (char* str);
      длина строки  (без учета 0-символа);
 strcpy (char* str1,char* str2); 
	 strncpy (char* str1,char* str2, число_байтов);
     копирование строк здесь 2-я строка переписывается в первую, размер которой должен быть достаточным для такого копирования;     
             char s[80]; . . .   strcpy(s,”ИСТАС”);
сравнение строк strcmp (char* str1,char* str2)
			       strncmp (char* str1,char* str2, число_байтов)
     эта функция возвращает
     положительное число, если первый аргумент больше второго, отрицательное число,  если первый аргумент  меньше второго, 
     0, если эти аргументы равны (сравниваются числовые коды символов, из которых состоят строки);
	                     if(strcmp(”ЭТИЛ”,”ЭТАНОЛ”)>0){.........}
Описание слайда:
Некоторые функции <string.h> strlen (char* str); длина строки (без учета 0-символа); strcpy (char* str1,char* str2); strncpy (char* str1,char* str2, число_байтов); копирование строк здесь 2-я строка переписывается в первую, размер которой должен быть достаточным для такого копирования; char s[80]; . . . strcpy(s,”ИСТАС”); сравнение строк strcmp (char* str1,char* str2) strncmp (char* str1,char* str2, число_байтов) эта функция возвращает положительное число, если первый аргумент больше второго, отрицательное число, если первый аргумент меньше второго, 0, если эти аргументы равны (сравниваются числовые коды символов, из которых состоят строки); if(strcmp(”ЭТИЛ”,”ЭТАНОЛ”)>0){.........}

Слайд 72





Некоторые функции <string.h> 
strcat (char* str1,char* str2); 
	strncat (char* str1,char* str2, число_байтов); 
     сцепление строк здесь строки-аргументы соединяются в одну строку
strchr (char* str1, int c);  strrchr (char* str1, int c); 
     возвращает указатель на первое (strchr) или последнее (strrchr) вхождение символа c в строку str1
strstr (char* str1, char* str2); 
     возвращает указатель на первое вхождение строки str2 в строку str1
     При отсутствии вхождения strchr, strrchr и strstr возвращают NULL

memset (char* str1, int c, int n); 
     заполняет память, начиная с адреса str1,
     n - кратной вставкой символа  c
		char s[80];
		memset(s,0,80);
		memset(s,'X',5);  /* s=”XXXXX” */
Описание слайда:
Некоторые функции <string.h> strcat (char* str1,char* str2); strncat (char* str1,char* str2, число_байтов); сцепление строк здесь строки-аргументы соединяются в одну строку strchr (char* str1, int c); strrchr (char* str1, int c); возвращает указатель на первое (strchr) или последнее (strrchr) вхождение символа c в строку str1 strstr (char* str1, char* str2); возвращает указатель на первое вхождение строки str2 в строку str1 При отсутствии вхождения strchr, strrchr и strstr возвращают NULL memset (char* str1, int c, int n); заполняет память, начиная с адреса str1, n - кратной вставкой символа c char s[80]; memset(s,0,80); memset(s,'X',5); /* s=”XXXXX” */

Слайд 73





Некоторые функции <string.h> 
strtok (char* str1, char* str2); 
     поиск лексических единиц. Возвращает указатель (char*) на первое слово, в конце которого добавляется 0. Для повторного использования вместо первого аргумента используется NULL. 
    В качестве результата выдается указатель на второе слово из входной строки.
     Процесс можно повторять, пока не будет обработана вся исходная строка str1. 
    Тогда функция вернет нулевой указатель.
    str2 задает список всех возможных разделителей (пробел, точка, запятая и т.д.)
Пример
char s[]="Раз два,три(четыре)пять.";
char *Temp=strtok(s, " ,.()" );
. . .
Temp=strtok(NULL, " ,.()" );
Описание слайда:
Некоторые функции <string.h> strtok (char* str1, char* str2); поиск лексических единиц. Возвращает указатель (char*) на первое слово, в конце которого добавляется 0. Для повторного использования вместо первого аргумента используется NULL. В качестве результата выдается указатель на второе слово из входной строки. Процесс можно повторять, пока не будет обработана вся исходная строка str1. Тогда функция вернет нулевой указатель. str2 задает список всех возможных разделителей (пробел, точка, запятая и т.д.) Пример char s[]="Раз два,три(четыре)пять."; char *Temp=strtok(s, " ,.()" ); . . . Temp=strtok(NULL, " ,.()" );

Слайд 74





Применение функции strtok()  
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
char s[]="Иванов(ЭУИС)";
char *Temp=strtok(s,"(");
printf("\n%s\n",Temp);
Temp=strtok(NULL,")");
printf("%s\n",Temp);
getch();
}
Описание слайда:
Применение функции strtok() #include <stdio.h> #include <conio.h> #include <string.h> main() { char s[]="Иванов(ЭУИС)"; char *Temp=strtok(s,"("); printf("\n%s\n",Temp); Temp=strtok(NULL,")"); printf("%s\n",Temp); getch(); }

Слайд 75





Преобразование по формату:  
int year;
char s[80];
strcpy(s,”2010”);

sscanf(s,"%d",&year);

year++;

sprintf(s,"%d",year);
Описание слайда:
Преобразование по формату: int year; char s[80]; strcpy(s,”2010”); sscanf(s,"%d",&year); year++; sprintf(s,"%d",year);

Слайд 76





Преобразование строка/число:  
II способ

#include <stdlib.h>
int n-число,d-основание системы счисления
char s[80]-строка;
/*Преобразование числа в строку*/
itoa(n,s,d);
/*Для типа long*/ ltoa(n,s,d);
/*Преобразование строки в число*/
n=atoi(s);
/*Для типа long*/ n=atol(s);
/*Для типа double*/ x=atof(s);
Описание слайда:
Преобразование строка/число: II способ #include <stdlib.h> int n-число,d-основание системы счисления char s[80]-строка; /*Преобразование числа в строку*/ itoa(n,s,d); /*Для типа long*/ ltoa(n,s,d); /*Преобразование строки в число*/ n=atoi(s); /*Для типа long*/ n=atol(s); /*Для типа double*/ x=atof(s);

Слайд 77





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>

int n_of_char(char c, char* s)
{
int n=0,i;
for(i=0;i<strlen(s);i++)
	if(c==s[i])n++;
return n;
}

main()
{
char c,s[80];
clrscr();
printf("\Введите символ\n");
scanf("%c",&c);
printf("\Введите строку\n");
scanf("%s",s);
printf("\n N=%d",n_of_char(c,s));
getch();
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> #include <string.h> int n_of_char(char c, char* s) { int n=0,i; for(i=0;i<strlen(s);i++) if(c==s[i])n++; return n; } main() { char c,s[80]; clrscr(); printf("\Введите символ\n"); scanf("%c",&c); printf("\Введите строку\n"); scanf("%s",s); printf("\n N=%d",n_of_char(c,s)); getch(); }

Слайд 78





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>

int n_of_char(char c, char* s)
{
int n=0,i;
for(i=0;i<strlen(s);i++)
	if(c==s[i])n++;
return n;
}

main()
{
FILE *in;
char c,s[80];
clrscr();
printf("\Введите символ\n");
scanf("%c",&c);
in=fopen("str.dat","r");
while(fscanf(in,"%s",s)!=EOF)
printf("\n %s=%d",s,n_of_char(c,s));
getch(); fclose(in);
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> #include <string.h> int n_of_char(char c, char* s) { int n=0,i; for(i=0;i<strlen(s);i++) if(c==s[i])n++; return n; } main() { FILE *in; char c,s[80]; clrscr(); printf("\Введите символ\n"); scanf("%c",&c); in=fopen("str.dat","r"); while(fscanf(in,"%s",s)!=EOF) printf("\n %s=%d",s,n_of_char(c,s)); getch(); fclose(in); }

Слайд 79





#include <stdio.h>
#include <stdio.h>
#include <string.h>
int test(char* s)
{
int n=0,i;
n=strlen(s)-1;
if(s[0]==s[n]) return 1;
return 0;
}
main()
{
FILE *in;
char s[80];
int k=0;
clrscr();
in=fopen("str.dat","r");
while(fscanf(in,"%s",s)!=EOF)
			if(test(s))
				{
			     printf(s);
                 printf("\n");
				k++;
				}
printf("\n k=%d",k); getch();
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <string.h> int test(char* s) { int n=0,i; n=strlen(s)-1; if(s[0]==s[n]) return 1; return 0; } main() { FILE *in; char s[80]; int k=0; clrscr(); in=fopen("str.dat","r"); while(fscanf(in,"%s",s)!=EOF) if(test(s)) { printf(s); printf("\n"); k++; } printf("\n k=%d",k); getch(); }

Слайд 80





#include <stdio.h>
#include <stdio.h>
#include <conio.h>

main()
{
FILE *in;
int c,k;

clrscr();

in=fopen("str5.dat","r");
k=0;
while((c=getc(in))!=EOF)
	{
	putchar(c);			
	if(c=='\n')
		k++;
	}
printf("Всего строк: %d",k);
getch();
fclose(in);
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> main() { FILE *in; int c,k; clrscr(); in=fopen("str5.dat","r"); k=0; while((c=getc(in))!=EOF) { putchar(c); if(c=='\n') k++; } printf("Всего строк: %d",k); getch(); fclose(in); }

Слайд 81





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char s[80],t[80];
int i,j;
printf("Введите предложение:");
gets(s);

printf("\n Заключаем в скобки:\n");

t[0]='(';
j=1;
i=0;
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> #include <string.h> int main() { char s[80],t[80]; int i,j; printf("Введите предложение:"); gets(s); printf("\n Заключаем в скобки:\n"); t[0]='('; j=1; i=0;

Слайд 82





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
char s[80];
char Znak[]=" ,.()";
char *Temp;
clrscr();
printf("Введите предложение:");
gets(s);
Temp=strtok(s,Znak);
do
  {
  /*  printf("%s\n",Temp);*/
   puts(Temp);
  Temp=strtok(NULL,Znak);
  } while(Temp);
getch();
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> #include <string.h> main() { char s[80]; char Znak[]=" ,.()"; char *Temp; clrscr(); printf("Введите предложение:"); gets(s); Temp=strtok(s,Znak); do { /* printf("%s\n",Temp);*/ puts(Temp); Temp=strtok(NULL,Znak); } while(Temp); getch(); }

Слайд 83





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char s[80],t[80]="";
char Znak[]=" ,.()";
char *Temp;

printf("Введите предложение:");
gets(s);
printf("\n Заключаем в скобки:\n");
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> #include <string.h> int main() { char s[80],t[80]=""; char Znak[]=" ,.()"; char *Temp; printf("Введите предложение:"); gets(s); printf("\n Заключаем в скобки:\n");

Слайд 84





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
FILE *in;
char s[80],Fam[80]="";
char *Temp,*Facultet;
int Lmax,Len;
if((in=fopen("Spisok.dat","r"))==NULL)
	{printf("Файл не открыт!");exit(1);}
Lmax=0;
while(fgets(s,80,in))
{
Temp=strtok(s,"(");
Facultet=strtok(NULL,")");
if(strcmp(Facultet,"ЭУИС"))
			      continue;
if((Len=strlen(Temp))>Lmax)
		{
		Lmax=Len;
		strcpy(Fam,Temp);
		}
}
fclose(in);
printf("%s-%d ", Fam,strlen(Fam));
getch();
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> #include <string.h> main() { FILE *in; char s[80],Fam[80]=""; char *Temp,*Facultet; int Lmax,Len; if((in=fopen("Spisok.dat","r"))==NULL) {printf("Файл не открыт!");exit(1);} Lmax=0; while(fgets(s,80,in)) { Temp=strtok(s,"("); Facultet=strtok(NULL,")"); if(strcmp(Facultet,"ЭУИС")) continue; if((Len=strlen(Temp))>Lmax) { Lmax=Len; strcpy(Fam,Temp); } } fclose(in); printf("%s-%d ", Fam,strlen(Fam)); getch(); }

Слайд 85





#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
FILE *in;
char s[80],Fam[80]="";
char *Temp,*Facultet;
int Lmax,Len;
if((in=fopen("Spisok.dat","r"))==NULL)
	{printf("Файл не открыт!");exit(1);}
Lmax=0;
while(fgets(s,80,in))
{
if(!strstr(s,"(ЭУИС)")) continue;
Temp=strtok(s,"(");
if((Len=strlen(Temp))>Lmax)
		{
		Lmax=Len;
		strcpy(Fam,Temp);
		}
}
fclose(in);
printf("%s-%d ", Fam,strlen(Fam));
getch();
}
Описание слайда:
#include <stdio.h> #include <stdio.h> #include <conio.h> #include <string.h> main() { FILE *in; char s[80],Fam[80]=""; char *Temp,*Facultet; int Lmax,Len; if((in=fopen("Spisok.dat","r"))==NULL) {printf("Файл не открыт!");exit(1);} Lmax=0; while(fgets(s,80,in)) { if(!strstr(s,"(ЭУИС)")) continue; Temp=strtok(s,"("); if((Len=strlen(Temp))>Lmax) { Lmax=Len; strcpy(Fam,Temp); } } fclose(in); printf("%s-%d ", Fam,strlen(Fam)); getch(); }

Слайд 86





char s[80],F[80],Fam[80]="";
char s[80],F[80],Fam[80]="";
char *Temp,*Facultet;
. . .
printf("Введите факультет: ");
gets(s);
F[0]='(';
strcpy(F+1,s);
strcat(F,")");

Lmax=0;
while(fgets(s,80,in))
	{
	if(!strstr(s,F))continue;
	Temp=strtok(s,"(");
	if((Len=strlen(Temp))>Lmax)
			{
			Lmax=Len;
			strcpy(Fam,Temp);
			}
	}
fclose(in);
printf("%s -%d ",Fam,strlen(Fam));
getch();
}
Описание слайда:
char s[80],F[80],Fam[80]=""; char s[80],F[80],Fam[80]=""; char *Temp,*Facultet; . . . printf("Введите факультет: "); gets(s); F[0]='('; strcpy(F+1,s); strcat(F,")"); Lmax=0; while(fgets(s,80,in)) { if(!strstr(s,F))continue; Temp=strtok(s,"("); if((Len=strlen(Temp))>Lmax) { Lmax=Len; strcpy(Fam,Temp); } } fclose(in); printf("%s -%d ",Fam,strlen(Fam)); getch(); }

Слайд 87





printf("Введите предложение:");
printf("Введите предложение:");
gets(s);
printf("Введите символ");
scanf("%c",&c);
Описание слайда:
printf("Введите предложение:"); printf("Введите предложение:"); gets(s); printf("Введите символ"); scanf("%c",&c);

Слайд 88





Структуры
struct z {
	char name[20];
	char vid[20];
	long summa;
	char data[11];
	} x,*a,*b;
a=(struct z*)malloc(n*sizeof(struct z));
b=&x;
x.summa=10000; b->summa=5000;
a[i].summa=200; (a+i)->summa=100; 
strcpy(x.name,”Иванов”);
strcpy(b->name,”Петров”);
strcpy(a[i].name,”Сидоров”);
strcpy((a+i)->name,”Федоров”);
Описание слайда:
Структуры struct z { char name[20]; char vid[20]; long summa; char data[11]; } x,*a,*b; a=(struct z*)malloc(n*sizeof(struct z)); b=&x; x.summa=10000; b->summa=5000; a[i].summa=200; (a+i)->summa=100; strcpy(x.name,”Иванов”); strcpy(b->name,”Петров”); strcpy(a[i].name,”Сидоров”); strcpy((a+i)->name,”Федоров”);

Слайд 89





Структуры
main()
{
FILE *in;
struct z {
	char name[20];
	char vid[20];
	long summa;
	char data[11];
	} *clients;
int n,int k,i;
clrscr();
in=fopen("struct.dat", "r");
fscanf(in,"%d",&n);
clients=(struct z*)malloc(n*sizeof(struct z));
for(i=0;i<n;i++)
	fscanf(in,"%s%s%ld%s",clients[i].name, clients[i].vid, 				&clients[i].summa, clients[i].data);
for(i=0;i<n;i++)
	printf("\n%-20s %-20s %7ld %s",clients[i].name,
		clients[i].vid, clients[i].summa, clients[i].data);
. . .
}
Описание слайда:
Структуры main() { FILE *in; struct z { char name[20]; char vid[20]; long summa; char data[11]; } *clients; int n,int k,i; clrscr(); in=fopen("struct.dat", "r"); fscanf(in,"%d",&n); clients=(struct z*)malloc(n*sizeof(struct z)); for(i=0;i<n;i++) fscanf(in,"%s%s%ld%s",clients[i].name, clients[i].vid, &clients[i].summa, clients[i].data); for(i=0;i<n;i++) printf("\n%-20s %-20s %7ld %s",clients[i].name, clients[i].vid, clients[i].summa, clients[i].data); . . . }

Слайд 90





Битовые поля в структурах
#include <stdio.h>
#include <conio.h>

struct byte
	{
	unsigned b1:1;
	unsigned b2:1;
	unsigned b3:1;
	unsigned b4:1;
	unsigned b5:1;
	unsigned b6:1;
	unsigned b7:1;
	unsigned b8:1;
	};
union bits
	{
	unsigned char ch;
	struct byte b;
	} u;
Описание слайда:
Битовые поля в структурах #include <stdio.h> #include <conio.h> struct byte { unsigned b1:1; unsigned b2:1; unsigned b3:1; unsigned b4:1; unsigned b5:1; unsigned b6:1; unsigned b7:1; unsigned b8:1; }; union bits { unsigned char ch; struct byte b; } u;

Слайд 91





Аргументы функции main 
main(int ARGC,char **ARGV)
 {
	while (ARGC--)
     printf("\n %s ",ARGV[ARGC]);
 }
  Допустим, программа называется
  obrab_1.exe
 Тогда, если ее вызвать из подкаталога TC на диске C следующим образом:
C:\TC>obrab_1 one two
то программа выдаст на экран такую информацию:
 two
 one
 C:\TC\obrab_1.exe
Описание слайда:
Аргументы функции main main(int ARGC,char **ARGV) { while (ARGC--) printf("\n %s ",ARGV[ARGC]); } Допустим, программа называется obrab_1.exe Тогда, если ее вызвать из подкаталога TC на диске C следующим образом: C:\TC>obrab_1 one two то программа выдаст на экран такую информацию: two one C:\TC\obrab_1.exe

Слайд 92





КЛАССЫ ПАМЯТИ
Описание слайда:
КЛАССЫ ПАМЯТИ

Слайд 93





Классы памяти
#include <stdio.h>
#include <conio.h>
f()
{
static int i=0;
i++;
return;
}
main()
{
f();    /* i=1 */
f();    /* i=2 */
f();    /* i=3 */
getch();
}
Описание слайда:
Классы памяти #include <stdio.h> #include <conio.h> f() { static int i=0; i++; return; } main() { f(); /* i=1 */ f(); /* i=2 */ f(); /* i=3 */ getch(); }

Слайд 94





Классы памяти
example.h
int a=20;

example.с
#include <stdio.h>
#include <conio.h>
#include ”example.h”
main()
{
extern int a;
/* Здесь инициализировать нельзя */
printf(”a=%d”,a);   /* a=20 */
getch();
}
Описание слайда:
Классы памяти example.h int a=20; example.с #include <stdio.h> #include <conio.h> #include ”example.h” main() { extern int a; /* Здесь инициализировать нельзя */ printf(”a=%d”,a); /* a=20 */ getch(); }

Слайд 95





Классы памяти
int i=0,j=0;
void Print_J()
{
printf(”\n j=%d”,j); /* j=0  */ 
}
main()
{
int j=10;
i++;
printf(”\n i=%d j=%d”,i,j);  /* i=1  j=10 */
if (j==10)
	{
	int i=100;
	i--;
	printf(”\n i=%d”,i);    /* i=99 */
	}
Print_J();              
printf(”\n i=%d”,i);    /* i=1  */
}
Описание слайда:
Классы памяти int i=0,j=0; void Print_J() { printf(”\n j=%d”,j); /* j=0 */ } main() { int j=10; i++; printf(”\n i=%d j=%d”,i,j); /* i=1 j=10 */ if (j==10) { int i=100; i--; printf(”\n i=%d”,i); /* i=99 */ } Print_J(); printf(”\n i=%d”,i); /* i=1 */ }

Слайд 96


Общий синтаксис языка Си, слайд №96
Описание слайда:



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