Объясните причину использования массивов при написании компьютерных программ
Индексный массив (в некоторых языках программирования также таблица, ряд) — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом (в отличие от списка), доступ к которым осуществляется по индексу.
Индекс массива — целое число, либо значение типа, приводимого к целому, указывающее на конкретный элемент массива.
В ряде скриптовых языков, например PHP, ассоциативные массивы, в которых переменные не обязаны быть однотипными, и доступ к ним не обязательно осуществляется по индексу.
Содержание
Общее описание
Массив — Упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.
Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.
Пример статического массива на Паскале -
Пример статического массива на Си -
Поддержка индексных массивов (свой синтаксис объявления, функции для работы с элементами и т. д.) есть в большинстве высокоуровневых языков программирования. Максимально допустимая размерность массива, типы и диапазоны значений индексов, ограничения на типы элементов определяются языком программирования и/или конкретным транслятором.
В языках программирования, допускающих объявления программистом собственных типов, как правило, существует возможность создания типа «массив». В определении такого типа может указываться размер, тип элемента, диапазон значений и типы индексов. В дальнейшем возможно определение переменных созданного типа. Все такие переменные-массивы имеют одну структуру. Некоторые языки поддерживают для переменных-массивов операции присваивания (когда одной операцией всем элементам массива присваиваются значения соответствующих элементов другого массива).
Объявление типа «массив» в Паскале -
Специфические типы массивов
Динамические массивы
Динамическим называется массив, размер которого может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования, поддерживающий такие массивы, должен предоставлять встроенную функцию или оператор. Динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объёмы данных, а регулировать размер массива в соответствии с реально необходимыми объёмами. Обычные, не динамические массивы называют ещё статическими.
Пример динамического массива на Delphi
Пример динамического массива на Си
Гетерогенные массивы
Гетерогенным называется массив, в разные элементы которого могут быть непосредственно записаны значения, относящиеся к различным типам данных. Массив, хранящий указатели на значения различных типов, не является гетерогенным, так как собственно хранящиеся в массиве данные относятся к единственному типу — типу «указатель». Гетерогенные массивы удобны как универсальная структура для хранения наборов данных произвольных типов. Отсутствие их поддержки в языке программирования приводит к необходимости реализации более сложных схем хранения данных. С другой стороны, реализация гетерогенности требует усложнения механизма поддержки массивов в трансляторе языка.
Массивы массивов
Многомерные массивы, как правило реализованные как одномерные массивы, каждый элемент которых, является ссылкой на другой одномерный массив.
Реализация
Стандартным способом реализации статических массивов с одним типом элементов является следующий:
- Под массив выделяется непрерывный блок памяти объёмом S*m1*m2*m3…mn, где S — размер одного элемента, а m1…mn — размеры диапазонов индексов (то есть количество значений, которые может принимать соответствующий индекс).
- При обращении к элементу массива A[i1, i2, i3, … in] адрес соответствующего элемента вычисляется как B+S*(i1p*m1+i2p*m2+…+i(n-1)p*mn-1+inp), где B — база (адрес начала блока памяти массива), ikp-значение k-го индекса, приведённое к целому с нулевым начальным смещением.
Таким образом, адрес элемента с заданным набором индексов вычисляется, так что время доступа ко всем элементам массива одинаково.
Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчетом от нуля (zero-based), с отсчетом от единицы (one-based), и с отсчетом от специфического значения заданного программистом (n-based). Отсчет индекса элемента массивов с нуля более характерен для низкоуровневых ЯП, однако этот метод был популяризирован в языках более высокого уровня языком программирорования С.
Более сложные типы массивов — динамические и гетерогенные — реализуются сложнее.
Достоинства
- легкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим)
- одинаковое время доступа ко всем элементам
- малый размер элементов: они состоят только из информационного поля
Недостатки
- для статического массива — отсутствие динамики, невозможность удаления или добавления элемента без сдвига других
- для динамического и/или гетерогенного массива — более низкое (по сравнению с обычным статическим) быстродействие и дополнительные накладные расходы на поддержку динамических свойств и/или гетерогенности.
- при работе с массивом в стиле C (с указателями) и при отсутствии дополнительных средств контроля — угроза выхода за границы массива и повреждения данных
См. также
Ссылки
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое "Массив (программирование)" в других словарях:
Коллекция (программирование) — У этого термина существуют и другие значения, см. Коллекция. Для улучшения этой статьи желательно?: Найти и оформить в виде сносок ссылки на авторитетные исто … Википедия
Полиморфизм (программирование) — У этого термина существуют и другие значения, см. Полиморфизм. Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью … Википедия
Ссылка (программирование) — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия
Сегодня мы поговорим об одном из основополагающих понятий в программировании - о массиве.
Что мы подразумеваем под этим термином? Под ним мы понимаем переменную, представляющую собой сумму слагаемых, принадлежащих к одному типу. Если вы захотите применять массивы, то вам нужно будет заранее составить описание конкретного типа и указать доступ к каждому компоненту.
Как это сделать? Все компоненты массива, как единого комплекса, объединяются под одним именем, общим для них. Если вам понадобится поработать с конкретным компонентом массива, нужно будет только указать его название и индекс.
Можно привести простой пример массива из алгебры – последовательности чисел, где целая их группа обозначается одним названием. Желая выделить определенное, нужное вам число, вводят его индексную составляющую.
Всего массивы бывают двух видов - одномерные (линейные) и двухмерные
Если обращаясь к компонентам массива, выбудете использовать только его номер, то такой совокупности дается название одномерного. Еще одно его название – линейный. Визуально его можно представить как таблицу, где всего одна строка без различных делений и ячеек. Размер всего массива определяют по количеству индексов его компонентов.
Соответственно – двухмерный отличается тем, что у него два индекса, вместо одного.
Если обратиться к табличному виду, то первый индекс будет равен показателю строчки, а второй – показателю ячейки или столбика.
Как заполнить данные правильно?
Вы можете выбрать из нескольких способов заполнения, например, это можно проделать через оператор присваивания, он идеально подойдет, если все компоненты массива находятся под определенной зависимостью.
Можно выбрать более интересный способ и воспользоваться датчиком случайных чисел. Данный метод оптимален, если предполагается заполнить совокупность данных однородными компонентами, но получится добиться того, что они будут разными.
Что можно делать с компонентами массива?
- Выстроить по убыванию или возрастанию (рассортировать);
- Найти их значения;
- Посчитать сколько компонентов подпадают под выставленные вами параметры.
При создании двух одинаковых совокупностей данных, есть возможность объединить их под именем одного их них.
Для начала работы с массивом, нужно его объявить. Как это сделать?
Для объявления массива и создания конкретной ячейки, предназначенной для последующего сохранения элементов, от вас потребуется задать размерность и придумать название. Выбираем «Массив» в качестве ключевого слова.
Допустим, C 77 подразумевает, что массив одномерен и состоит из 77 компонентов.
A 7,4 является двухмерным и визуализирован в табличной форме, насчитывающей 7 строчек, в каждой из которых по 5 ячеек.
Существуют ли какие-то ограничения при использовании одномерного массива? Да, мы можем создать и применять только 1000 компонентов. Примерно так же нас ограничивает и двухмерный массив - таблица будет представлена максимум 1000 столбиков с 1000 ячеек.v
Как правильно работать с массивами и что они могут нам дать?
Как только вы объявили массив, потребуется обработать каждый его компонент, присваивая название специальный индекс в цифрах, размещая эту информацию в квадратных скобочках.
Для создания двухмерного от вас потребуется обозначить два индекса. Как только вы даете конкретный индекс – компоненты можно называть индексированными переменными.
Какие бывают виды компонентов, индексов и имен?
Как создать имя для массива? Для этой цели можно применить произвольный идентификатор. У нас есть условия, что название нужно начинать с T. Именно так можно будет отличать каждый конкретный идентификатор от всех прочих.
Дальнейшую часть названия составляют, беря за основу переменные, хранящиеся в самом массиве.
Какие типы компонентов вы можете встретить? Для того, чтобы создать индекс, берите целые числа, а в качестве типа будет выступать весь числовой диапазон, между первым и последним компонентами массива.
Приведем простой пример: тип 1. 777 будет значить, что созданный нами массив насчитывает 777 компонентов, где каждый из которых равен какому-либо числу от 1 до 777.
Надеемся, что мы смогли раскрыть вам основные термины и процессы при работе с массивами в программировании.
Для представления набора однотипных данных используются массивы, являющиеся наряду с циклами фундаментальным инструментом программирования. Массивы позволяют избегать дублирования кода и разрабатывать компактные, понятные и красивые программы. Для наиболее полного использования возможностей массивов они должны применяться в комбинации с циклами, поэтому для успешного освоения данной темы необходимо уверенно владеть работой с циклами.
Рассмотрим задачу вычисления среднего возраста десяти человек. Вначале объявим 10 переменных, каждая из которых хранит возраст одного человека, затем вычислим их среднее и выведем результат на экран.
//Объявление и инициализации десяти переменных
int age_0 = 30; int age_1 = 21;
int age_2 = 22; int age_3 = 19;
int age_4 = 45; int age_5 = 18;
int age_6 = 15; int age_7 = 61;
int age_8 = 43; int age_9 = 39;
//Вычисление и вывод среднего
int sum = age_0 + age_1 + age_2 +
age_3 + age_4 + age_5 +
age_6 + age_7 + age_8 +
float avg = (float) sum/10;
cout << "Средний возраст равен " << avg << " лет\n";
Как видно из представленного фрагмента кода, неудобство использования переменных заключается в том, что их пришлось объявить 10 штук и обработать 10 штук. Решить данную проблему при большем количестве переменных, скажем, при 1000, будет еще неудобнее. Кроме того, если в процессе написания программы количество требуемых переменных неизвестно, то придется существенно усложнять код.
Решить эту, а также много других задач эффективно и красиво можно с помощью массивов. Рассмотрим, как это сделать.
Объявление массива
Массив – это набор элементов, которые имеют одинаковый тип и хранятся в памяти строго последовательно. Обращение к элементу массива осуществляется по имени массива и номеру элемента в этом массиве. Номер элемента в массиве называется индексом. В языке Си индекс первого элемента равен 0, а индекс последнего – N-1, где N – это размер массива. При объявлении массива указывается тип его элементов, имя и размер:
В качестве типа элементов массива можно указывать любой существующий в языке Си тип. Имя массива следует выбирать, чтобы оно отражало суть содержимого массива. Например, абстрактный числовой массив можно назвать numbers, массив возрастов – ages, а массив весов – weights. Размер массива должен быть константой, а не переменной, поэтому существуют три способа объявления массива:
const int n = 10;
Поскольку размер массива не может быть переменной, то следующая запись недопустима и вызовет ошибку компиляции:
cout << "Введите размер массива:\n";
Размер массива указывать необязательно, если при его объявлении выполняется инициализация:
Каждый из элементов массива представляет собой переменную, другими словами, именованную ячейку памяти. Отличие элемента массива от обычной переменной заключается лишь в том, что обращение к обычной переменной происходит по ее имени, а к элементу массива обращаются по имени массива и индексу элемента в этом массива. Таким образом, элементу массива можно присвоить некоторое значение так же, как и переменной:
Кроме того, можно ввести значение элемента массива с клавиатуры при помощи функций ввода
Линейным массивом можно обозначить, например, оценки учеников класса. Каждая оценка является значением элемента массива оценок "A" и имеет порядковый номер (индекс). В Турбо-Паскале значение индекса указывается в квадратных скобках после имени массива. Можно создать массив фамилий "S" учеников класса. Значением элемента массива будет фамилия ученика, а индексом - порядковый номер по списку. Пусть дан список фамилий учеников и их оценки:
№ | Фамилии | Оценки |
1 | Иванов | 5 |
2 | Петров | 4 |
3 | Сидоров | 5 |
4 | Титов | 5 |
. | . | . |
30 | Якупов | 4 |
Описание массивов: Присвоение значений элементам массива: Приведем таблицу обозначений и соответствия элементам массива, их значений и индексов:
Номер элемента индекса | 1 | 2 | 3 | 4 | 1 | 30 |
Элементы массива "S" | S[ 1 ] | S[ 2 ] | S[ 3 ] | S[ 4 ] | S[ i ] | S[ 30 ] |
Значения элементов | Иванов | Петров | Сидоров | Титов | . | Якупов |
Элементы массива "A" | A[ 1 ] | A[ 2 ] | A[ 3 ] | A[ 4 ] | A[ i ] | A[ 30 ] |
Значения элементов | 5 | 4 | 5 | 5 | . | 4 |
Если известна зависимость, по которой изменяются значения элементов массива, то присвоение значений удобно проводить в операторах цикла c параметром или с условием. Например, присвоим значения элементам массива "y" по зависимости: y=sin(x), где x= Pi * i/180, 0<= i <=180. Присвоим случайные значения в диапазоне от -30 до +40 ста элементам массива "R": Присвоим значения семи элементам массива "A" оператором Readln: При выводе массива на экран удобно размещать данные в виде таблицы - в несколько колонок. Для вывода обозначений переменных ("шапки таблицы") можно использовать операторы вывода символов в цикле, например: - шапка для вывода в три пары колонок значений переменных "S" и "A". Шапка занимает 66 позиций (по ширине экрана в текстовом режиме размещается 79 символов и пробел). Оператор Writeln; переводит курсор на новую строчку.
Вывод значений ста элементов массивов "S" и "A" в три пары колонок, произведем операторами: В этом случае данные таблицы полностью не умещаются на экране и можно задержать прокрутку экрана при выводе данных, применяя оператор Readln после вывода, например, 20 строк.
В цикле удобно определять сумму элементов массива, наибольший (наименьший) элемент и создавать новые массивы, удовлетворяющие некоторому условию, например:
Двумерные массивы
Массивы, рассмотренные выше, имеют элементы, упорядоченные по одному индексу и называются одномерными массивами или векторами. Массив может быть двумерным, трехмерным и т. д. Двумерные массивы имеют элементы, упорядоченные по двум индексам и часто называются матрицами. В Турбо-Паскале при описании многомерного массива диа-пазоны изменения индексов перечисляются через запятые, например: Рассмотрим пример работы с двумерными массивами. Обозначим массивом оценки учеников класса по нескольким предметам. Каждая оценка является значением элемента массива оценок "A" и имеет порядковый номер (два индекса). Поставим в соответствие первому индексу номер фамилии в списке учеников, а второму - номер предмета, по которому получена оценка. Тогда двумерный массив оценок можно представить в виде таблицы: каждый элемент a[i, j] находится на пересечении I-ой строки и J-го столбца.
Исходные данные могут быть представлены в виде таблицы оценок:
Годовые оценки по предметам:
1 | 2 | 3 | 4 | 5 | 6 | |||
№ | Фамилия | Физика | Химия | Алгебра | Геометрия | История | Биология | |
1 | Иванов | 4 | 5 | 3 | 4 | 5 | 5 | |
2 | Петров | 4 | 5 | 4 | 3 | 4 | 4 | |
3 | Сидоров | 5 | 5 | 3 | 4 | 5 | 4 | |
. | . | . | . | . | . | . | . | |
30 | Якупов | 4 | 3 | 4 | 5 | 4 | 5 |
Можно создать одномерные массивы фамилий "S" учеников класса и наименований предметов "P" . Значением элемента массива "Р" будет наименование предмета, а индексом - порядковый номер предмета, например: 1 - физика, 2 - химия, 3 - алгебра, 4 - геометрия, 5 - история, 6 - биология. Приведенная выше таблица может быть представлена в виде набора элементов ( число строк = N, число столбцов = M ):
Номер строки "I" | Номер столбца "J" | 1 | 2 | 3 | 4 | . | J | . | M | |
Массив "S" | Массив "P" | P[1] | P[2] | P[3] | P[4] | . | P[J] | . | P[M] | |
1 | S[1] | Массив "A" | a[1, 1] | a[1, 2] | a[1, 3] | a[1, 4] | . | a[1, j] | . | a[n, m] |
2 | S[2] | a[2, 1] | a[2, 2] | a[2, 3] | a[2, 4] | . | a[2, j] | . | a[2, m] | |
3 | S[3] | a[3, 1] | a[3, 2] | a[3, 3] | a[3, 4] | . | a[3, j] | . | a[3, m] | |
4 | S[4] | a[4, 1] | a[4, 2] | a[4, 3] | a[4, 4] | . | a[4, j] | . | a[4, m] | |
. | . | . | . | . | . | . | . | . | . | |
I | S[I] | a[i, 1] | a[i, 2] | a [i, 3] | a [i, 4] | . | a[i, j] | . | a[i, m] | |
. | . | . | . | . | . | . | . | . | . | |
N | S[N] | a[n, 1] | a[n, 2] | a[n, 3] | a[n, 4] | . | a[n, j ] | . | a[n, m] |
Массив оценок можно задать с использованием функции Random, например: Для вывода наименований предметов ( "шапка" таблицы ) можно использовать операторы: Для вывода элементов массива "A" на экран удобно использовать вложенный цикл: Для расчета массива "SS" - сумм "M" элементов в каждой из "N" строк массива "A" (NxM) можно применить операторы: Здесь для каждого индекса "i" от 1 до N происходит суммирование элементов A[i, j] по индексу "j" от 1 до M. При модификации массива "A" изменяется расположение данных в исходном массиве, например, в случае вставки данных из линейного массива "B" в колонку с номером "M1" необходимо сдвинуть данные в колонках J >= M1 используя операторы: Если порядковый номер предмета изменится, то необходимо изменить расположение оценок в массиве "A", например, перестановку колонок с оценками по физике и химии можно сделать операторами: Примечание: при модификации массива "A" не забудьте соответственно изменять расположение данных в сопутствующих массивах, например, "P" или "S". При создании новых массивов согласно некоторым условиям выбираются данные из элементов исходного массива. Например, для создания массива "В" из четных столбцов массива "A" можно использовать операторы: Для создания массива "В", состоящего из строк массива "A", удовлетворяющих условию A[i, 1] > C, где C - заданное число, можно использовать операторы: Для сравнения значений элементов массива удобно строить столбиковые диаграммы (гистограммы). Например, для вывода "N" значений положительных элементов массива "SS" в виде горизонтальной гистограммы можно использовать операторы: Добавив операторы вывода порядкового номера и значений SS[i] получаем гистограмму в виде:
Примеры:
Пример1: Дан двумерный массив. В каждой строке все его элементы, не равные нулю, переписать (сохраняя порядок) в начало строки, а нулевые элементы - в конец массива. Новый массив не заводить.
Этапы решения задачи:
1. Суть одного из алгоритмов решения данной задачи состоит в том чтобы "просматривать" массив построчно и находить в каждой строке пару (0:число), а затем менять их местами между собой и так до тех пор пока в строке таких пар не окажется.
2. Напишем программу на псевдо паскале:
3.Составим блок схему алгоритма
Детализируем блок "Упорядочиваем 1-ю строку"
Блок схема алгоритма целиком:
4.Приведем программу на языке Паскаль:
Достоинства:
1) лёгкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим);
2) одинаковое время доступа ко всем элементам ;
3) малый размер элементов: они состоят только из информационного поля.
Недостатки:
1) для статического массива — отсутствие динамики, невозможность удаления или добавления элемента без сдвига других;
2) для динамического и/или гетерогенного массива — более низкое (по сравнению с обычным статическим) быстродействие и дополнительные накладные расходы на поддержку динамических свойств и/или гетерогенности;
3) при работе с массивом в стиле C (с указателями) и при отсутствии дополнительных средств контроля — угроза выхода за границы массива и повреждения данных.
Новые вопросы в Другие предметы
Визначити опорні реакції балок: F=35 KH, m=2 KH/M, q=20 KH/M, AB=0,5 M, BC=0,2 M, DB=0,3 M
Таблица Виды исследовательских работ 5 шт Характеристики, отличия
1. Кто является главным героем рассказа? Что вы знаете о его прошлом? 2. Зачитайте описание шахты в рассказе? Какие чувства вызывает шахта у Олексы Ва … рича? 3. Как описывает автор работу шахтёров? Каковы условия шахтёрского труда? 4. С помощью каких приёмов характеризует автор героев? ШАХТЁРСКАЯ ЧЕСТЬ расска ПРОШУ ПОМОГИТЕ МОЛЮ ВАС РОДНЫЕ ВСЕ БАЛЫ ОТДАЮ
Тема. Проблема бытия в философии. Тесты. 1.Какие из перечисленных понятий являются фундаментальными понятиями философии? 1.Квант; 2.Субстанция; 3 … .Субъект; 4.Валентность; 5.Бытие; 6.Объект. 2.Относительно какой философской позиции основа всего сущего сводится к одному началу? 1.Плюрализм; 2.Монизм; 3.Дуализм. 3.Относительно какой философской позиции основа всего сущего сводится к двум началам? 1.Плюрализм; 2.Монизм; 3.Дуализм. 4.Основной вопрос философии с точки зрения диалектического материализма – это выявление соотношения между 1.Материей и сзнанием; 2.Мышлением и речью; 3.Природным и социальным. 5.Выделите правильное высказывание: 1.Идеализм представляет собой отрицание существования мира конкретных предметов и явлений. 2.Идеализм – это стремление обосновать значение идеалов в жизни, стремление человека к совершенству. 3.Идеализм – это признание идей, сознания первичными. 4.Идеализм – это туманные, далёкие от жизни рассуждения,полагающие отвлечься от «прозы» жизни и т.д. 6.Какое из прведенных высказываний верное? 1.Материализм – это признание того, что весь мир, все тела и предметы состоят из одинаковых частиц – атомов или элементарных частиц и т.д. 2.Материализм представляет собой принцип жизни, заключающийся в признании первенства материальных и других благ в жизни человека. 3.Материализм – философское направление, утверждающее первичность природы, бытия и вторичности сознания. 4.Материализм – это учение, которое все явления действительности сводит к материи. 7.Что относится к формам бытия 1.Бытие природы. 2.Бытие субстанции. 3.Бытие человека. 4.Бытие общества. 8. Реально существующая, стабильная, самостоятельная, объективная, вечная, бесконечная субстанция, которая включает в себя все сущее это: а) бытие б) сознание в) общество 9. Категория противоположная бытию: а) сознание б) небытие в) диалектика 10. Как называется раздел философии, в котором изучается наиболее общие категории и законы бытия? 1. философская антропология; 2. онтология; 3. гносеология; 4.этика. 11.Что относится к сущности бытия общества? 1. чувства, идеи, эмоции; 2. мир человека, как уникального, живого существа; 3. мир духовно-практической деятельности людей; 4. мир вещей, состояний, процессов. 12.Каково содержание бытия человека? 1. это мир чувств, идей, эмоций; 2. это мир духовно-практической деятельности людей; 3. это мир вещей, состояний, процессов; 4. это мир человека как уникального, живого существа. 13.Каково содержание бытия природы? 1. это мир вещей, состояний, процессов; 2. это мир духовно-практической деятельности людей; 3. это мир чувств, идей, эмоций; 4. это мир человека как уникального живого существа. 14.Какой философской категорией обозначается мир физических состояний? 1. субъективная реальность; 2. материальная субстанция; 3. объективная реальность; 4. небытие. 15. Каково содержание духовного бытия? 1. это мир чувств, идей, эмоций; 2. это мир духовно-практической деятельности людей; 3. это мир вещей, состояний, процессов; 4.это мир человека как уникального, живого существа. 16.Кто из древних философов первым сформулировал понятие «бытие»: а) Гераклит ; б) Парменид ; в) Пифаго. 17. "Вопрос об отношении мышления к бытию:" есть основной вопрос философии. Так считал: а) Аристотель б) Кант в) Энгельс 18.Укажите "Онтологический" вопрос известнейшего героя трагедии Шекспира: а) Быть или не быть? б) Иметь или Быть? в) Быть или казаться?
ПОМОГИТЕ. пожалуйста. 80% поступивших на грант, не могут выбирать любимую профессию. Почему? Ваше мнение? 5- 6 предложений
образовательная система Великобритании. 1)законодательное нормирование 2)плата за обучение
Предприятием за год произведено продукции на сумму 200 млн. руб. Численность работников 50 человек. Определить среднемесячную производительность труда … .
1. Кто является главным героем рассказа? Что вы знаете о его прошлом? 2. Зачитайте описание шахты в рассказе? Какие чувства вызывает шахта у Олексы Ва … рича? 3. Как описывает автор работу шахтёров? Каковы условия шахтёрского труда? 4. С помощью каких приёмов характеризует автор героев? ШАХТЁРСКАЯ ЧЕСТЬ ПРОШУ ПОМОГИТЕ МОЛЮ ВАС РОДНЫЕ ВСЕ БАЛЫ ОТДАЮ
Читайте также: