Инфоурок Другое ПрезентацииОдномерные массивы

Одномерные массивы

Скачать материал
Скачать материал "Одномерные массивы"

Получите профессию

Экскурсовод (гид)

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Экономист-аналитик

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

  • Лекция №6Одномерные массивы

    1 слайд

    Лекция №6
    Одномерные массивы

  • План лекцииПонятие одномерного статического массива
Ввод – вывод элементов ма...

    2 слайд

    План лекции
    Понятие одномерного статического массива
    Ввод – вывод элементов массива
    Заполнение массива случайными числами
    Нахождение суммы элементов
    Объявление массивов с использованием раздела описания типов
    Суммирование двух массивов
    Определение числа элементов, удовлетворяющих некоторому условию
    Нахождение индексов элементов с заданным свойством
    Объединение двух массивов в один
    Поиск максимального и минимального элементов массива
    Удаление элементов массива
    Включение элементов в массив
    Перестановка элементов массива
    Инвертирование массива
    Формирование массива из элементов других массивов
    Циклический сдвиг элементов массива



  • Одномерный массивСтатический массив – упорядоченная последовательность фиксир...

    3 слайд

    Одномерный массив
    Статический массив – упорядоченная последовательность фиксированного количества переменных одного типа, имеющая общее имя.

    Описание массива:

    <идентификатор>: array [<диапазон индексов>] of <тип элементов>;




  • Пример объявления массива




Пример объявления массива 10-ти целых чисел....

    4 слайд

    Пример объявления массива






    Пример объявления массива 10-ти целых чисел.

    Var
    a : array [1..10] of integer;
    индекс
    элемент

  • Ввод – вывод элементов массиваВвод элементов с клавиатуры и вывод элементов....

    5 слайд

    Ввод – вывод элементов массива
    Ввод элементов с клавиатуры и вывод элементов.
    Так как необходимо ввести определенное число элементов, то алгоритмическая структура программы будет циклической. В цикле, управляющей переменной будет являться значение i - индекс элемента массива, для вывода элементов так же будет использован цикл.

  • Ввод – вывод элементов массиваVar
	a : array [1..10] of integer;
	i : integer...

    6 слайд

    Ввод – вывод элементов массива
    Var
    a : array [1..10] of integer;
    i : integer;
    Begin
    writeln (‘ Заполнение элементов целочисленного массива A[10] ‘);
    for i:=1 to 10 do
    begin
    write (‘a[‘, i , ‘] =‘);
    read (a[ i ]);
    end;
    writeln (‘В памяти компьютера сформирован массив с элементами’);
    for i:=1 to 10 do
    write (a[ i ]:6);
    End.

    начало

    Ai
    A[10]
    конец

    Ai

  • Генерация случайных чиселrandom(n) – функция генерации случайного числа в диа...

    7 слайд

    Генерация случайных чисел
    random(n) – функция генерации случайного числа в диапазоне от 0 до n-1.

    Примеры :
    x:=random(11);
    у:=random (101)-50;
    z:=random (51)-100;
    k:=random(21)+80;

    randomize – функция позволяющая генерировать случайные числа различными при каждом запуске программы.






  • Ввод – вывод элементов массиваГенерация элементов массива случайными числами....

    8 слайд

    Ввод – вывод элементов массива
    Генерация элементов массива случайными числами.

    Var
    a : array [1..15] of integer;
    i : integer;
    Begin
    randomize;
    writeln (‘Элементы целочисленного массива A[15] сформированные случайными числами диапазона от -100 до 100.‘);
    for i:=1 to 15 do
    begin
    a[ i ]:=random(201)-100;
    write (a[ i ]:6);
    end
    End.

    начало

    Ai
    A[15]
    конец

  • Нахождение суммы элементов массиваДля получения суммы элементов одномерного с...

    9 слайд

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






  • Нахождение суммы элементов массиваVar
	a : array [1..20] of integer;
	s, i :...

    10 слайд

    Нахождение суммы элементов массива
    Var
    a : array [1..20] of integer;
    s, i : integer;
    Begin
    writeln (‘ Заполнение элементов целочисленного массива A[20] ‘);
    for i:=1 to 20 do
    begin
    write (‘a[‘, i , ‘] =‘);
    read (a[ i ]);
    end;
    s:=0;
    for i:=1 to 20 do
    s:=s+a[ i ];
    writeln (‘s=‘,s)
    End.






    начало

    Ai
    A[20]
    конец
    s
    i=1;20
    s:=s+a[ i ]
    s=0

  • Объявление массивов с использованием раздела описания типовПример объявления...

    11 слайд

    Объявление массивов с использованием раздела описания типов
    Пример объявления массива :
    Var
    a : array [1..50] of real;
    b,c : array [1..20] of integer;

    Аналогичное описание массивов с использованием раздела описания типов:
    Type
    mas1=array[1..50] of real;
    mas2=array[1..20] of integer;
    Var
    a : mas1;
    b,c : mas2;


  • Суммирование двух одномерных массивовДанный алгоритм подразумевает формирован...

    12 слайд

    Суммирование двух одномерных массивов
    Данный алгоритм подразумевает формирование элементов массива по заданным элементам двух массивов, где каждое очередное значение получаемого массива равно сумме соответствующих элементов заданных массивов по индексом получаемого элемента. Т.е. c[i]=a[i]+b[i].








  • Суммирование двух одномерных массивов
Type
	massiv=array[1..10] of integer;
V...

    13 слайд

    Суммирование двух одномерных массивов

    Type
    massiv=array[1..10] of integer;
    Var
    a , b, c: massiv;
    i : integer;
    Begin
    randomize;
    writeln (‘ Массив A ‘);
    for i:=1 to 10 do
    begin
    a[ i ]:=random(51);
    write (a[ i ]:5);
    end;






    начало

    Ai, Bi
    a[10], b[10], c[10]
    конец

    Ci
    i=1;10
    c[ i ]:=a[ i ]+b[ i ]
    writeln (‘ Массив B ‘);
    for i:=1 to 10 do
    begin
    b[ i ]:=random(151)-70;
    write (b[ i ]:5);
    end;
    for i:=1 to 10 do
    c[ i ]:=a[ i ]+b[ i ];
    writeln (‘ Массив C ‘);
    for i:=1 to 10 do
    write (c[ i ]:6);
    End.

  • Изменение значений некоторых элементов массиваРассмотрим задачу замены отрица...

    14 слайд

    Изменение значений некоторых элементов массива
    Рассмотрим задачу замены отрицательных элементов на противоположные по знаку.





  • Изменение значений некоторых элементов массиваConst
	n=20;
Var
	a : array [1....

    15 слайд

    Изменение значений некоторых элементов массива
    Const
    n=20;
    Var
    a : array [1..n] of integer;
    i : integer;
    Begin
    writeln (‘ Заполнение элементов целочисленного массива A[‘,n,’] ‘);
    for i:=1 to n do
    begin
    write (‘a[‘, i , ‘] =‘);
    read (a[ i ]);
    end;
    for i:=1 to n do
    if a[ i ]<0 then
    a[ i ]:=-a[ i ];
    wreteln (‘Массив A с замененными отрицательными эл-ми’);
    for i:=1 to n do
    write (a[ i ]:5)
    End.






    начало

    Ai

    a[20]
    конец
    i=1;20
    a[ i ]<0
    a[ i ]=-a[ i ]
    +
    -

    Ai

  • Определение числа элементов, удовлетворяющих заданному условиюДля решения так...

    16 слайд

    Определение числа элементов, удовлетворяющих заданному условию
    Для решения такой задачи необходимо задать условие и в цикле перебирая все элементы массива, в случае выполнения данного условия увеличивать значение некоторой переменной k на единицу. До цикла перебора всех элементов, необходимо значение k обнулить. Решим задачу для определения в массиве количества элементов меньших заданного числа Т.






  • Определение числа элементов, удовлетворяющих заданному условию
Type
	massiv=a...

    17 слайд

    Определение числа элементов, удовлетворяющих заданному условию

    Type
    massiv=array[1..20] of real;
    Var
    a : massiv;
    t : real;
    k,i : integer;
    Begin
    writeln (‘ Введите элементы
    массива A ‘);
    for i:=1 to 20 do
    begin
    write (‘a[‘, i , ‘] =‘);
    read (a[ i ]);
    end;






    начало

    Ai

    a[20]
    конец
    k
    i=1;10
    a[ i ]<t
    writeln (‘ Введите T‘);
    read (t);
    k:=0;
    for i:=1 to 20 do
    if a[ i ]<t then
    inc(k);
    writeln (‘k=‘,k)
    End.

    t
    k=k+1
    +
    -
    k=0

  • Нахождение индексов элементов с заданным свойствомРассмотрим задачу Нахождени...

    18 слайд

    Нахождение индексов элементов с заданным свойством
    Рассмотрим задачу Нахождения и вывода на экран номеров (индексов) четных элементов.
    Для решения задачи необходимо просмотреть весь массив, и если просматриваемый элемент является четным, то выводить его индекс.






  • Нахождение индексов элементов с заданным свойствомСonst
	n=10;
Type
	massiv=a...

    19 слайд

    Нахождение индексов элементов с заданным свойством
    Сonst
    n=10;
    Type
    massiv=array[1..n] of integer;
    Var
    a : massiv;
    i: integer;
    Begin
    writeln (‘ Введите элементы
    массива A ‘);
    for i:=1 to n do
    begin
    write (‘a[‘, i , ‘] =‘);
    read (a[ i ]);
    end;
    for i:=1 to n do
    if a[ i ] mod 2=0 then
    write (i:4);
    End.







    начало

    Ai

    a[10]
    конец
    i=1;10
    i
    +
    -
    a[ i ] mod 2=0

  • Объединение двух массивов в одинЗадачи по объединению массивов в один имеют р...

    20 слайд

    Объединение двух массивов в один
    Задачи по объединению массивов в один имеют различные способы решения. Общим является то, что при формировании элементов объединяемого массива, его значения индексов не будут совпадать со значениями индексов массивов, используемых для объединения. Поэтому основной и главной задачей становится описание закономерности формирования объединенного массива. Например, требуется получить массив С включая элементы массива А и B чередованием : a1;b1;a2;b2……







  • Объединение двух массивов в один
Type
	mas1=array[1..10] of integer;
	mas2=ar...

    21 слайд

    Объединение двух массивов в один

    Type
    mas1=array[1..10] of integer;
    mas2=array[1..20] of integer;
    Var
    a, b : mas1;
    c : mas2;
    i : integer;
    Begin
    randomize;
    writeln (‘ Массив A ‘);
    for i:=1 to 10 do
    begin
    a[ i ]:=random(51);
    write (a[ i ]:5);
    end;







    начало

    Ai, Bi

    a[10],b[10],c[20]
    конец
    i=1;20
    writeln (‘ Массив B ‘);
    for i:=1 to 10 do
    begin
    b[ i ]:=random(151)-70;
    write (b[ i ]:5);
    end;
    for i:=1 to 20 do
    if i mod 2=0 then
    c[ i ]:=b[i/2];
    else
    c[ i ]:=a[i div 2];
    writeln (‘ Массив C ‘);
    for i:=1 to 20 do
    write (c[ i ]:6)
    End.

    c[i]=b[i/2]
    +
    -
    c[i]=a[i div 2]
    i mod 2=0


    Ci

  • Поиск минимального и максимального элементов одномерного массиваПоиск максима...

    22 слайд

    Поиск минимального и максимального элементов одномерного массива
    Поиск максимального и минимального элементов массива относится к классическим задачам обработки данных с использованием массива. Суть алгоритма поиска минимального элемента состоит в том, что предположительно за минимальный объявляют первый элемент массива и перебирая все элементы изменяют значение минимального элемента текущим, в том случае, если он оказался меньше минимального на данном этапе. Задача нахождения максимального элемента имеет подобное тривиальное решение.






  • Поиск минимального элемента одномерного массиваType
	mas=array[1..20] of inte...

    23 слайд

    Поиск минимального элемента одномерного массива
    Type
    mas=array[1..20] of integer;
    Var
    a : mas;
    min, i : integer;
    Begin
    randomize;
    writeln (‘ Массив ‘);
    for i:=1 to 10 do
    begin
    a[ i ]:=random(101)-50;
    write (a[ i ]:6);
    end;
    min:=a[1];
    for i:=2 to 20 do
    if a[ i ] < min then
    min:=a[ i ];
    writeln (min)
    End.







    начало

    Ai

    a[20]
    конец
    i=2;20
    A[ i ]<min
    min=a[ i ]
    +
    -
    min
    min=a[1]

  • Удаление элементов массиваУдалить элемент в статическом массиве - невозможно....

    24 слайд

    Удаление элементов массива
    Удалить элемент в статическом массиве - невозможно. Поэтому используют перемещение всех элементов, начиная с "удаляемого", записывая на их место следующие (i+1) элементы. Вводят так же переменную, которая обозначает индекс последнего элемента и при каждом шаге удаления элемента ее уменьшают на 1. Рассмотрим задачу на удаление всех отрицательных элементов массива.






  • Удаление элементов массива
Type
	mass=array[1..20] of real;
Var
	a: mass;
	i,...

    25 слайд

    Удаление элементов массива

    Type
    mass=array[1..20] of real;
    Var
    a: mass;
    i, j, m : integer;
    Begin
    randomize;
    writeln (‘ Массив A ‘);
    for i:=1 to 20 do
    begin
    a[ i ]:=(random(201)-80)/(random(100)+1);
    write (a[ i ]:6:2);
    end;
    m:=20;
    for i:=1 to 20 do
    begin
    if a[ i ]<0 then






    begin
    for j:=i to 20 do
    a[ j ]=a[ j+1 ];
    dec(m)
    end;
    if a[ i ]<0 then
    dec(i)
    end;
    writeln (‘ Массив A без отрицательных
    элементов ‘);
    for i:=1 to m do
    write (a[ i ]:6:2)
    End.

  • Включение элементов массиваВключить элемент в статический массив так же невоз...

    26 слайд

    Включение элементов массива
    Включить элемент в статический массив так же невозможно. Поэтому изначально размер массива должен быть больше на количество предполагаемых элементов для включения в массив. При включении элемента следует в цикле перебирать элементы от последнего элемента до индекса, куда будет включен элемент и переписывать значения текущего (i-го) элемента на место последующего (i+1). Следует так же ввести переменную для хранения индекса последнего элемента, которую при каждом включении увеличивают на 1. Рассмотрим задачу на включение значения T в массив, которое должно располагаться за максимальным элементом массива.





  • Включение элементов массива
Type
	mass=array[1..21] of real;
Var
	a: mass;
	i...

    27 слайд

    Включение элементов массива

    Type
    mass=array[1..21] of real;
    Var
    a: mass;
    i, j , i_max : integer;
    t, max : real;
    Begin
    randomize;
    writeln (‘ Массив A ‘);
    for i:=1 to 20 do
    begin
    a[ i ]:=(random(201)-80)/(random(100)+1);
    write (a[ i ]:6:2);
    end;
    readln (t);
    max:=a[1];
    i_max:=1;
    for i:=2 to 20 do
    if a[ i ]>max then







    begin
    max:=a[ i ];
    i_max:=i
    end;
    for j:=21 downto i_max-1 do
    a[ j ]=a[ j-1 ];
    a[i_max]=t;
    writeln (‘ Массив A c включенным
    элементом t ‘);
    for i:=1 to 21 do
    write (a[ i ]:6:2)
    End.

  • Перестановка элементов массиваАлгоритм перестановки элементов (обмена значени...

    28 слайд

    Перестановка элементов массива
    Алгоритм перестановки элементов (обмена значениями) прост. Для его выполнения достаточно воспользоваться "временной" переменной, в которую сначала помещают значение первой переменной. Затем в первую переменную заносят значение второй (если не воспользоваться "временной" - значение первой переменной будет потеряно). И сохраненное значение первой переменной во "временной" заносят во вторую переменную. Эту операцию образно можно сравнить с операцией по переливанию двух разных жидкостей из двух пробирок, воспользовавшись третьей - пустой пробиркой.





    tmp:=a;


    a:=b;



    b:=tmp;

  • Перестановка элементов массиваРассмотрим задачу обмена максимального и минима...

    29 слайд

    Перестановка элементов массива
    Рассмотрим задачу обмена максимального и минимального элементов местами.





  • Перестановка элементов массиваType
	mass=array[1..20] of real;
Var
	a: mass;...

    30 слайд

    Перестановка элементов массива
    Type
    mass=array[1..20] of real;
    Var
    a: mass;
    i , i_max, i_min : integer;
    max, min, tmp : real;
    Begin
    randomize;
    writeln (‘ Массив A ‘);
    for i:=1 to 20 do
    begin
    a[ i ]:=(random(201)-80)/(random(100)+1);
    write (a[ i ]:6:2);
    end;
    max:=a[1];
    i_max:=1;
    min:=a[1];
    i_min:=1;
    for i:=2 to 20 do
    begin








    if a[ i ]>max then
    begin
    max:=a[ i ];
    i_max:=i
    end;
    if a[ i ]<min then
    begin
    min:=a[ i ];
    i_min:=i
    end
    end;
    tmp:=a[i_min];
    a[i_min]:=a[i_max];
    a[i_max]:=tmp;
    writeln (‘ Массив A c переставленными
    максимальным и минимальным эл-ми‘);
    for i:=1 to 20 do
    write (a[ i ]:6:2)
    End.

  • Инвертирование массиваИнвертирование массива - это запись его элементов в обр...

    31 слайд

    Инвертирование массива
    Инвертирование массива - это запись его элементов в обратном порядке. Для решения этой задачи можно воспользоваться другим массивом, в который можно записать элементы из данного массива в обратном порядке. Однако целесообразнее сделать это за наименьшее количество перестановок и не использовать дополнительного массива. Как это сделать? Можно двигаться от первого элемента до середины массива и менять местами первый элемент с последним, второй - с предпоследним и т.д. Получается что в цикле будут обмениваться элемент с i-м индексом с элементом у которого индекс равен n-i+1 , где n- индекс последнего элемента.





  • Инвертирование массиваVar
	a: array [1..20] of real;
	i , n : integer;
	tmp :...

    32 слайд

    Инвертирование массива
    Var
    a: array [1..20] of real;
    i , n : integer;
    tmp : real;
    Begin
    randomize;
    writeln (‘ Массив A ‘);
    n:=20;
    for i:=1 to n do
    begin
    a[ i ]:=(random(201)-80)/(random(100)+1);
    write (a[ i ]:6:2);
    end;
    for i:=1 to n div 2 do
    begin
    tmp:=a[ i ];
    a[ i ]:=a[ n-i+1 ];
    a[ n-i+1 ]:=tmp;
    end;








    writeln (‘ Инвертированный массив A ‘);
    for i:=1 to n do
    write (a[ i ]:6:2)
    End.

  • Формирование массива из элементов другого массиваПри решении таких задач, сло...

    33 слайд

    Формирование массива из элементов другого массива
    При решении таких задач, сложность их реализации заключается в том, что параллельно с изменением индексов элементов исходного массива необходимо вводить индексы получаемого массива, при том, что индекс получаемого массива должен увеличиваться только в том случае, если элемент включается в новый массив. Размер нового массива следует принять равным исходному, потому что может оказаться так, что все элементы будут включены в новый массив. Рассмотрим задачу с включением в новый массив элементов, у которых значения являются большими заданного значения T.





  • Формирование массива из элементов другого массиваVar
	a,b: array [1..20] of r...

    34 слайд

    Формирование массива из элементов другого массива
    Var
    a,b: array [1..20] of real;
    i , n : integer;
    t : real;
    Begin
    randomize;
    writeln (‘ Массив A ‘);
    n:=20;
    for i:=1 to n do
    begin
    a[ i ]:=(random(201)-80)/(random(100)+1);
    write (a[ i ]:6:2);
    end;
    readln (t);
    j:=0;
    for i:=1 to n do
    if a[ i ]>t then
    begin
    inc(j);
    b[ j ]:=a[ i ]









    end;
    if j=0 then
    writeln (‘Массив B не содержит
    элементов’)
    else
    begin
    writeln (‘Массив B ‘);
    for i:=1 to j do
    write (b[ i ]:6:2)
    end
    End.

  • Циклический сдвиг элементов массиваПод циклическим сдвигом понимают перемещен...

    35 слайд

    Циклический сдвиг элементов массива
    Под циклическим сдвигом понимают перемещение элементов "по цепочке". Т.е. при сдвиге элементов вправо элемент находящийся на последнем месте в массиве становится на место первого с последующим сдвигом всех остальных элементов. И наоборот, при циклическом сдвиге влево - первый элемент переходит на место последнего с соответствующим перемещением всех элементов массива. При реализации таких алгоритмов следует помнить, что обход при перемещении циклическим сдвигом вправо начинают от последнего элемента, а при сдвиге влево с первого элемента. Для хранения данных в процессе перемещения элементов можно воспользоваться дополнительным массивом или же просто - одной "временной" переменной.





  • Циклический сдвиг элементов массива влево на k позицийConst
	n=20;
Var
	a: ar...

    36 слайд

    Циклический сдвиг элементов массива влево на k позиций
    Const
    n=20;
    Var
    a: array [1..n] of real;
    i , j, k : integer;
    tmp: real;
    Begin
    randomize;
    writeln (‘ Массив A ‘);
    for i:=1 to n do
    begin
    a[ i ]:=(random(201)-80)/(random(100)+1);
    write (a[ i ]:6:2);
    end;
    readln (k);
    for i:=1 to k do
    begin
    tmp:=a[1];









    for j:=1 to n-1 do
    a[ j ]:=a[ j+1 ];
    a[n]:=tmp;
    end;
    writeln (‘Массив А сдвинут цикли-
    чески на k позиций влево‘);
    for i:=1 to n do
    write (a[ i ]:6:2)
    End.

  • 37 слайд

Получите профессию

Няня

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 669 391 материал в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 12.11.2020 458
    • PPTX 3.8 мбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Чеботарев Сергей Андреевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Чеботарев Сергей Андреевич
    Чеботарев Сергей Андреевич
    • На сайте: 3 года и 4 месяца
    • Подписчики: 0
    • Всего просмотров: 95180
    • Всего материалов: 209

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Технолог-калькулятор общественного питания

Технолог-калькулятор общественного питания

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Библиотечно-библиографические и информационные знания в педагогическом процессе

Педагог-библиотекарь

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 499 человек из 71 региона
  • Этот курс уже прошли 2 332 человека

Курс профессиональной переподготовки

Руководство электронной службой архивов, библиотек и информационно-библиотечных центров

Начальник отдела (заведующий отделом) архива

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Этот курс уже прошли 25 человек

Курс повышения квалификации

Специалист в области охраны труда

72/180 ч.

от 1750 руб. от 1050 руб.
Подать заявку О курсе
  • Сейчас обучается 36 человек из 22 регионов
  • Этот курс уже прошли 155 человек

Мини-курс

Каналы сбыта, продвижение и стимулирование продаж

5 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Патологии нервной системы у детей: от перинатального периода до нарушений поведения

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 40 человек из 24 регионов
  • Этот курс уже прошли 27 человек

Мини-курс

Искусственный интеллект: возможности и применение

3 ч.

780 руб. 390 руб.
Подать заявку О курсе