Массивы (Презентации)

PDF-файл Массивы (Презентации) Информатика (20898): Лекции - 1 семестрМассивы (Презентации) - PDF (20898) - СтудИзба2018-02-14СтудИзба

Описание файла

Файл "Массивы" внутри архива находится в папке "Презентации". PDF-файл из архива "Презентации", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.

Просмотр PDF-файла онлайн

Текст из PDF

ПрограммированиеМассивыМассивыМассивы - экземпляры класса Array. Массивесть просто коллекция (набор) элементов, вкотором доступ к элементу возможен по егономеру (целому числу). Нумерация элементовмассива начинается с нуля.Массив в Ruby может содержать элементы,принадлежащие различным классам.Создание массиваЧтобы создать экземпляр класса Array, егоэлементы, разделенные запятыми, заключаютв квадратные скобки, например, [1, 2, 3].Можно только создать массив, не заполняяего элементами, например,a=[]b = Array.new()d = Array.new(5)pd# => [nil, nil, nil, nil, nil]Печать массиваar = [1,2,3,4,5,6,7]for a in ar doputs aendputs arp arОсобенно удобен метод p, отображающийструктуру массива.

Однако и у него естьнедостаток - вместо русских букв он печатаетих ASCII-коды.Создание массива строкДлязаданиямассивастрокможноиспользоватьформусиспользованиемвыражения %w: запись %w(раз два три)эквивалентна записи ["раз", "два", "три"].Между символом %w и открывающей скобкойне должно быть пробела.ar = %w(раз два три)Доступ к элементам массиваПолучение элемента с указанным индексомосуществляется методом at или его синонимом[ ], например, a.at(0) или a[0]. Если аргументявляется отрицательным числом, то индексотсчитывается с конца.a = ["a", "b", "c", "d"]puts a[-2]# => cprint a[0 .. 2] # => abcprint a[2, 2]# => cdДобавление и удаление элементаиз конца массиваМетод push и его синоним << добавляютэлементы в конец массива.

Метод popвозвращает последний элемент массива,удаляя его из массива.a = ["a", "b"]a.push("c", "d") # => ["a", "b", "c", "d"]a << 1# => ["a", "b", "c", "d", 1]b = [1, 2, 3]p b.pop# => 3pb# => [1, 2]Добавление и удаление элементаиз начала массиваМетод unshift добавляет элемент в началомассива со сдвигом остальных, а метод shift возвращает первый элемент, удаляя его измассива.a = ["b", "c"];p a.unshift("a")b = ["b", "c"];p b.shiftpb# => ["a", "b", "c"]# => "b"# => ["c"]Удаление группы элементовМетод clear удаляет все элементы массива,а метод compact удаляет все объекты nil измассива.a = ["a", "b", "c", "d"]a.clearpap ["a", nil, "b", nil].compact# => []# => ["a", "b"]Преобразование всех элементовмассиваМетод map возвращают массив, полученный путемпреобразования каждого элемента исходного массивас помощью блокаоператоров, заключенных вфигурные скобки.a = ["1", "2", "3", "4"]p a.map do |i| i.to_i endp a.map do |i| i+"!" end# => [1, 2, 3, 4]# => ["1!", "2!", "3!", "4!"]p a.map do |x| x.to_i*3 end# => [3, 6, 9, 12]Склейка и разрезание массиваМассив строк может быть преобразован вединую строку и наоборот с помощью методовjoin (соединить) иsplit (разделить)соответственно:p [ "a", "b", "c" ].join# => "abc"p [ "a", "b", "c" ].join(", ")# => a, b, c"p "1:2:3".split(":")# => ["1", "2", "3"]Определение количестваэлементов массиваМетоды length и size возвращают количество элементов массива:p [ 1, 2, 3, 4, 5 ].size # => 5Инвертирование массиваДля получения массива, содержащего всеэлементы исходного, но в обратном порядкеиспользуется метод reverse:p [ 1, 2, 3, 4, 5 ].reverse# => [5, 4, 3, 2, 1]Сортировка массиваМетод sort сортирует элементы массива впорядке«возрастания».Онжессоответствующимблокомпозволяетотсортировать массив в обратном порядке:a = ["d", "a", "c"]p a.sort# => ["a", "c", "d"]Итераторы как средствообработки массиваРанее рассмотренные итераторы, такие какfor и each, позволяет осуществить обработкувсехэлементовмассива,например,следующий код позволит вычислить суммувсех элементов массива чисел:s=0ar = [1, 2, 3, 4, 5, 6]for a in ar dos += aendputs s# => 21Итераторы как средствообработки массиваs=0ar = [1, 2, 3, 4, 5, 6]for i in 0..ar.size dos += ar[i]endputs s# => 21s=0ar = [1, 2, 3, 4, 5, 6]ar.each do |a| s += a endputs s# => 21Методы max и minВозвращают максимальный и минимальныйэлемент коллекции соответственно.ar = [11, 12, 23, 45, 34, 21]puts ar.max# => 45puts ar.min# => 11Ввод массива чисел с клавиатурыprint "Укажите размерность массива: "n = gets.to_iar = Array.new(n)for i in 0 ...

nprint "ar[#{i}] = "ar[i] = gets.to_fendp arПримерСледующаяпрограммаколичествочетныхчиселвведенном с клавиатуры.определяетвмассиве,print "Введите массив целых чисел, разделяяих пробелами: "n=0ar = gets.split.map { |x| x.to_i }for x in arif x%2 == 0 then n+=1 endendputs nСлучайные числаДля получения случайного целого числа вдиапазоне от 0 до n используется методrand(n+1). Случайное число в диапазоне от 0до 1 получается с помощью этого же методабез указания параметра.puts randputs rand(100)# => 0.7408769294# => 21ПримерПрограмма находит количество нулей вмассиве, содержащем 1000 случайных чисел вдиапазоне от -10 до 10 (включительно).num = 0ar = Array.new(1000)for i in 0 ...

ar.sizear[i] = rand(21)-10num += 1 if ar[i]==0endputs numМногомерные массивыВRubyмногомерныемассивымоделируются путем размещения массива вкачестве элемента другого массива. Такойподход позволяет создавать, например, длядвумерныхмассивовнетолькопрямоугольные, но и массивы любой другойформы:a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]b = [[1, 1, 1], [1, 1], [1]]Доступ к элементам многомерногомассиваДля доступа к соответствующим элементаммногомерногомассива,операция[]применяется соответствующее число раз,например,a = [[1, 2, 3, 4, 5],[6, 7, 8, 9, 10],[9, 8, 7, 6, 5]]p a[1][4]# => 10ПримерНайтисуммуразмерностью 3x3.a = [[1, 2, 3 ],[6, 7, 8 ],[9, 8, 7]]s=0for i in 0...a.sizefor j in 0...a[i].sizes+=a[i][j]endendputs sэлементовматрицыРабота со строкамиСтрока - это массив символов, поэтомубольшая часть методов для работы смассивами подходят и для работы состроками.puts "Строка".sizeputs "aa"+"bb"puts "Строка"[2..3]puts "Строка"[2,3]# => 6# => "aabb"# => "ро"# => "рок"Особенность при работе сострокамиПри обращении к элементу строки припомощи метода [ ] в качестве результатавозвращаетсяASCII-кодсимвола,находящегося на указанной позиции строки(отсчет начинается с нуля).

Для того чтобыполучить код символа необходимо применитьметод chr:"abcdef"[0]# => 97"abcdef"[0].chr # => "a"ПримерСколько раз встретилась буква 'а'предложении введенном с клавиатуры?print 'Введите предложение: 'str = getscount = 0for i in 0...str.size doif str[i].chr == 'а' thencount += 1endendputs countв.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее