
- •Простые типы данных
- •Модификаторы
- •1. Запись целых констант
- •2. Запись вещественных констант
- •3. Запись символьных констант
- •1. Арифметические операции над данными целочисленных типов
- •Простые типы данных
- •Модификаторы
- •Операция присваивания
- •Простые типы данных
- •Модификаторы
- •Операция присваивания
- •Диапазоны значений простых типов данных для ibm pc
- •5. Структура программы. Функции.
- •2. Формальные параметры функций
- •3. Возвращаемые значения функций
- •2.2 Пример простой программы на языке Си.
- •Управляющие конструкции
- •Ветвления
- •Циклы while, do.. .While и for
- •Теоретичсекий зачет по операторам цикла
- •Графика
- •Указатели
- •Преобразование типов
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Операции над указателями.
- •Структуры
- •Объединения
- •. Описания типов (typedef)
- •Поразрядные операции (bitwize)
Теоретичсекий зачет по операторам цикла
Определение оператора цикла
Виды циклов в Си
Циклы с предусловием
Цикл с постусловием
Пример бесконечного и пустого циклов
Определить, что будет выведено на экран в результате выполнения программы:
# include <stdio.h> # include <conio.h> main() { int i,b=5,c=0; clrscr(); for (i=0;i<=b;i++) c=i; printf("c= %d", c); } |
# include <stdio.h> # include <conio.h> main() { int i,b=6,c=0; clrscr(); for (i=0;i<=b;i+=2) c+=i; printf("c= %d", c); } |
# include <stdio.h> # include <conio.h> main() { int b=2,c=0; float i; clrscr(); for (i=0;i<b;i+=0.5) c=i; printf("c= %d", c); } |
# include <stdio.h> # include <conio.h> main() { int i=-2,b=2,c=0; clrscr(); while(i<b) {i++; C++;} printf("c= %d", c); } |
# include <stdio.h> # include <conio.h> main() { int i=0,b=10,c=0; clrscr(); while(i<=b) {if (i%2 ==0) c++;} printf("c= %d", c); } |
# include <stdio.h> # include <conio.h> main() { int i=0,b=5,c=0; clrscr(); do { i++; c+=2; } While (i<b); printf("c= %d", c); } |
Найдите ошибки в программе:
# includ <stdio.h> # includ <conio.h> main()ж { int i=-2,b=2.5,c=0; clrscr; while i<b do {i+2; C++} print("c= %с", c); } |
# include stdio.h # include conio.h main {int i,b,c=0; clrscr(); for (i=0,b=5,i<=b;i+2) c=i printf("c= %d", c); } } |
include <stdio.h> include <conio.h> main() { int i=8.5,b=5,c=0; do { If c<>0 i++ else c+=2; } while i<b; printf(‘c= %d’, &c); } |
Найдите бесконечный и пустой цикл
# include <stdio.h> # include <conio.h> main() { int i=0,b=2,c=0; clrscr(); while(i<b) {printf(“%d”,i); c+=i; } printf("c= %d", c); } |
# include <stdio.h> # include <conio.h> main() { int b=2,c=0; float i; clrscr(); for (i=0;i<b;i+=5); c=i; printf("c= %d", c); } |
# include <stdio.h> # include <conio.h> main() { int i=10,b=5,c=0; clrscr(); while (i>=b) { i++; c+=2; printf("c= %d", c); } } |
Массивы.
Массив - это последовательная группа ячеек памяти, имеющих одинаковое имя и одинаковый тип. Индексы массивы в Си начинаются с 0.
Объявление массива:
int c[12];
Память может быть зарезервирована для нескольких массивов с помощью одного объявления
int b[100],x[15];
Пример использования массива
#include <stdio.h>
#include <conio.h>
main()
{
int a[10],nul,pr,sum,i;
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<10;i++)
printf("\n%d",a[i]);
nul = 0; pr = 1; sum = 0;
for (i=0;i<10;i++)
{
if(a[i]>0) sum += a[i];
if(a[i]==0) nul++;
if(a[i]<0) pr *= a[i];
}
printf("Сумма положительных = %d\n\
Количество нулевых = %d\n\
Произведение отрицательных = %d\n",\
sum,nul,pr);
getch();
}
Элементам массива можно присвоить начальные значения:
int n[5]={0};
int n[3]={32,25,0,-5,1};
Если размер массива не указан, в объявлении со списком инициализации, то количество элементов массива будет равно количеству элементов в списке начальных значений. Например
int n[]={1,2,3};
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
void main()
{
int mas[10];
int i,min,j,k;
randomize();
for(k=0;k<10;k++)
mas[k]=random(101);
min=mas[1];
for(i=0;i<10;i++)
if(mas[i]<min)min=mas[i];
for(j=0;j<10;j++)
printf("\n %d ",mas[j]);
printf("Минимальное число этого массива %d",min);
getch();}
Многомерные массивы
Описание двухмерного массива выглядит примерно так: int а[3] [5] , трехмерного ? int b[2] [3] [5]. Доступ к элементам массива производится обычным образом ? а [ i ] [<SPAN lang=EN-US style="mso-ansi-language: EN-US"> j ] и a[i][j][k].</SPAN>
В памяти элементы многомерных массивов располагаются согласно правилу: быстрее всего меняется "старший" индекс. Для двухмерных массивов это означает, что в памяти они располагаются "по строкам". То есть элементы двухмерного массива а [ 3 ] [ 5 ] будут расположены в порядке
а[0][0],<SPAN lang=EN-US style="mso-ansi-language: EN-US"> a[0][l], a[0][2],</SPAN> а[0][3], а[0][4], а[1,0], а[1][1], а[1][2], ..., а[2][2], а[2][3], а[2][4].
<SPAN lang=EN-US style="mso-ansi-language: EN-US">#include <stdio.h> void main(void) </SPAN> <SPAN lang=EN-US>{ int a[2][3]={{1,2,3},{4,5,6}},i,j; </SPAN><SPAN lang=EN-US>int (*p) [3]; p</SPAN><SPAN lang=EN-US style="mso-ansi-language: EN-US">=a; </SPAN><SPAN lang=EN-US>for (i=0;i<2,i++) </SPAN>{<SPAN lang=EN-US style="mso-ansi-language: EN-US"> printf("\n")</SPAN> ; <SPAN lang=EN-US style="mso-ansi-language: EN-US">for</SPAN> (j:=0;j<3;j++)<SPAN lang=EN-US style="mso-ansi-language: EN-US"> printf("%d=%d",*(*(p+i)+]),a[i][j]); </SPAN><SPAN lang=EN-US>} }</SPAN>
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int mfirst[5][5]={
{-2, 3, 5, 2,-8},
{ 3,-8, 3,10, 0},
{-5,15,8, 7,-7},
{-1, 8,10,13,-9},
{ 7, 8,13,18,-11}
};
int msecond[5][5];
int i,j;
clrscr();
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(i==j)msecond[i][j]=abs(mfirst[i][j]);
else msecond[i][j]=mfirst[i][j];
printf(" Исходная матрица Получившаяся матрица\n ");
for(i=0;i<5;i++)
{
printf("\n");
for(j=0;j<5;j++)
printf("%3d ",mfirst[i][j]);
printf(" ");
for(j=0;j<5;j++)
printf("%3d ",msecond[i][j]);
}
getch();
}
#include <stdio.h>
#include <conio.h>
void main()
{
int mfirst[5][5]={
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5},
{1,2,3,4,5}
};
int msecond[5][5];
int i,j,sum[5];
clrscr();
for(i=0;i<5;i++)
{
sum[i]=0;
for(j=0;j<5;j++)
msecond[i][j]=mfirst[i][j];
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
sum[i]+=mfirst[i][j];
}
for(i=0;i<5;i++)
msecond[i][i]=sum[i];
printf(" Исходная матрица Получившаяся матрица\n ");
for(i=0;i<5;i++)
{
printf("\n");
for(j=0;j<5;j++)
printf("%3d ",mfirst[i][j]);
printf(" ");
for(j=0;j<5;j++)
printf("%3d ",msecond[i][j]);
}
getch();
}
Домашнее задание 1 по теме "Массивы" |
Домашнее задание 2 по теме "Массивы" |
|
Введен массив masa[1..10] of integer;
В массиве только 0, 1, и 2. Упорядочьте массив без использование алгоритма сортировки |