Язык C. Особенности объявлений и некоторые операции

Слайд 2

Пусть определена переменная типа указатель на величину некоторого типа, например:
int *ukaz;
char *uk;
Значением

Пусть определена переменная типа указатель на величину некоторого типа, например: int *ukaz;
переменной типа указатель является адрес. С помощью операции взятия содержимого по адресу (*ukaz) можно получить значение, хранящееся в той ячейке памяти, на которую в данный момент показывает ukaz (переменная типа указатель).
Каждая переменная размещается в памяти, начиная с некоторого байта. Операция &<имя переменной> определяет адрес этой переменной. Например,
t d ud
float t, d=1.5, *ud;
Выполним присваивание
ud=&d;
Тогда одинаковый эффект дают следующие операторы:
t=d;
t=*ud; //берется значение по адресу ud

Слайд 3

Массивы и матрицы

Нумерация элементов массива начинается с нуля. Имя массива – указатель

Массивы и матрицы Нумерация элементов массива начинается с нуля. Имя массива –
на его первый элемент, т.е. mas==&mas[0].
int mas[10];
mas 0 1 … i … 9
Значение i-ого элемента массива можно представить двумя способами: mas[i]; или *(mas+i).
Для матрицы при объявлении указывается число строк и столбцов.
Нумерация элементов также начинается с нуля.
0 1 … 19 int b[10][20]. 0 Обращение к элементу
b 1 b[i][j]
… *(b[i]+j)
*(*(b+i)+j)
9
**int *int int

Слайд 4

Варианты ввода одномерного массива

int n, a[10], i, *uk;
Сначала вводится длина массива
printf (“Введите

Варианты ввода одномерного массива int n, a[10], i, *uk; Сначала вводится длина
длину массива A: ”);
scanf(“%d”, &n);
Затем можно использовать следующие варианты ввода:
for (i=0; ifor (i=0; ifor (i=0; ifor (i=0; ifor (i=0, uk=a; ifor(uk=a; uk

Слайд 5

Задача 1. Дан массив. Переставить его элементы так, чтобы сначала расположились все

Задача 1. Дан массив. Переставить его элементы так, чтобы сначала расположились все
неотрицательные элементы, а затем отрицатель-ные. Порядок среди отрицательных и неотрицательных элементов должен быть сохранён. Дополнительный массив не использовать.

Можно провести сортировку по знаку. Если положительный элемент (или 0) стоит правее отрицательного, то их следует переставить. Сравнение производится парами, как в методе "пузырька".
// вычислительная часть алгоритма
L:=n-1; //L- верхняя граница цикла
f:=1;//признак окончания перестановок
цикл пока f=1
m:=L; f:=0;
цикл от i:=0 до m-1
если a[i]<0 и a[i+1]>=0 то
b:=a[i]; a[i]:=a[i+1]; a[i+1]:=b;
L:=i; f:=1;
всё
кц
кц

Слайд 6

#include //для setlocale
#include //стандартный ввод и вывод
int main() //главная функция
{
setlocale(LC_ALL,

#include //для setlocale #include //стандартный ввод и вывод int main() //главная функция
".1251"); //меняем локализацию на русскую
int a[50], n, b, i, L, m, f; //описание переменных
printf("Введите 0 printf("Введите элементы массива\n");
for (i=0; i L=n-1; f=1;
while (f)
{
m=L; f=0;
for (i=0; i if (a[i]<0 && a[i+1]>=0)
b=a[i], a[i]=a[i+1], a[i+1]=b, L=i, f=1;
}
printf("Преобразованный массив:\n");
for (i=0; i printf("\n");
return 0; //признак успешного завершения программы
}

Слайд 7

Задача 2. Даны два одномерных массива целых чисел A и B. Сформировать

Задача 2. Даны два одномерных массива целых чисел A и B. Сформировать
массив С, состоящий из повторяющихся элементов массива А, отсутствующих в массиве В. 1.Есть новый массив a b c 2.Нет нового массива a b
Имя файла: Язык-C.-Особенности-объявлений-и-некоторые-операции.pptx
Количество просмотров: 166
Количество скачиваний: 0