Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


«адани€ дл€ самосто€тельного выполнени€. 1) —оставить программу вывода на экран любого элемента массива по его индексу




1) —оставить программу вывода на экран любого элемента массива по его индексу.

2) ¬ывести элементы массива на экран в обратном пор€дке.

3) ƒан массив. —оставить программу расчета квадратного корн€ из любого элемента массива.

4) ƒан массив. ¬ы€снить €вл€етс€ ли s-й элемент массива положительным (четным) числом.

5) ƒан массив из 21 вещественного числа. ”величить с 5 по 10 элемент в 3,8, с 11 по 21 уменьшить на 2,1, а остальные оставить без изменени€. ¬ывести полученный массив на экран.

6) ќпределить сумму первых шести элементов, и произведение последних четырех элементов массива.

7) ƒан массив a. ќпределить знакопеременную сумму a [1] Ц a [2] + a [3] Ц a [4] +.... ”словный оператор и операцию возведени€ в степень не использовать.

8) ¬ы€снить, верно ли, что сумма элементов массива есть неотрицательное число.

9) ƒан массив. Ќапечатать все элементы, не превышающие числа 100.

10) ¬ массиве хранитс€ информаци€ о количестве побед, одержанных 20 футбольными командами. ќпределить номера команд, имеющих меньше трех побед.

11) ƒан массив целых чисел. ¬ы€снить, верно ли, что сумма элементов, которые меньше 50, есть четное число.

12) ќпределить количество элементов массива, принадлежащих промежутку от a до b (значени€ a и b ввод€тс€ с клавиатуры; b>a).

13) ¬ массиве хранитс€ информаци€ о стоимости 1 кг 20 видов конфет. ќпределить, сколько сто€т самые дешевые конфеты и их пор€дковый номер.

14) ƒан массив вещественных чисел. ¬ы€снить, верно ли, что максимальный элемент превышает минимальный не более чем на 25.

15) ƒан массив из четного числа элементов. ѕомен€ть местами: а) его половины; б) первый и минимальный элементы. ≈сли элементов с минимальным значением несколько, то в обмене должен участвовать последний из них.

16) ”далить из массива: а) все отрицательные элементы; б) все четные элементы, сто€щие на нечетных местах.

17) »звестно, что в массиве имеютс€ элементы, равные 5. ќпределить номер последнего из них. (”словный оператор не использовать).

18) –азмеры 12 параллелепипедов (длина, ширина, высота) хран€тс€ в трех массивах. ¬ывести на экран объемы каждой фигуры. «адачу решить двум€ способами: 1) без использовани€ дополнительного массива; 2) с использованием дополнительного массива.

19) ƒан двумерный массив. ¬ывести на экран элемент, расположенный в правом верхнем углу массива.

20) ƒан двумерный массив. ¬ывести на экран все элементы второго столбца массива.

21) ƒан двумерный массив. Ќайти сумму элементов, расположенных в верхнем левом и нижнем правом углах.

22) «аполнить двумерный массив размером следующим образом:

 

                             
                             
                             
                             
                             
                             
                             
а)   б)
23) «аполнить двумерный массив размером следующим образом:
         
         
         
         
         

 

                               

24) ¬ двумерном массиве в строках хранитс€ информаци€ об оценках каждого из 20 учеников класса по тому или иному предмету (в первой строке Ц информаци€ об оценках первого ученика, во второй Ц второго и т.д.). ќбщее число предметов равно 10. ќпределить среднюю оценку по классу в целом.

25) ƒан двумерный массив. ќпределить количество максимальных элементов в массиве; сумму тех элементов массива, сумма индексов которых равно s.

26) ƒан двумерный массив. Ќайти минимальную сумму элементов столбца, максимальную сумму элементов строки.

27) ƒан двумерный массив. ќпределить в какой строке массива сумма элементов больше: в первой или в предпоследней.

28) ¬ двумерном массиве имеютс€ только два одинаковых элемента. Ќайти их.

29) ƒан двумерный массив целых чисел. ¬ п€той строке имеютс€ элементы, равные 13. ќпределить номер столбца, в котором расположен самый левый из таких элементов.

30) ƒан двумерный массив целых чисел. ѕринима€, что массив просматриваетс€ построчно сверху вниз, а в каждой строке Ц слева направо, найти координаты (номера) первого элемента, равного нулю.

31) —оставить программу,котора€ мен€ет местами два любых элемента главной диагонали квадратного массива.

32) ƒан квадратный массив размером , заполненный двузначными целыми числами. ¬ывести на экран: а) расположенную выше побочной диагонали; б) расположенную ниже побочной диагонали.

33) ƒан двумерный массив. ¬ставить в него строку из чисел 3 после строки с номером s.

34) ƒан двумерный массив размером , заполненный целыми числами. ¬се его элементы, кратные трем, записать в одномерный массив.

35) ƒаны два двумерных массива из 12 строк и 28 столбцов. ¬ первом из них записано количество осадков (в мм), выпавших за каждый из первых 28 дней каждого мес€ца 2004 года, во втором Ц аналогичные сведени€ за 2005 год.

 онтрольные вопросы

1. „то такое одномерный массив? ƒл€ чего используютс€ одномерные массивы?  ак они описываютс€?

2.  ак называетс€ номер элемента одномерного массива?

3.  ак в программе использовать значение конкретного элемента одномерного массива?

4.  ак можно заполнить одномерный массив?

5. ѕусть объ€влен массив int p[]={2, 4, 6, 10, 1}; „ему равно значение элемента р[3 ]?

6. „то €вл€етс€ результатом программы:

int x[]={5,2,3,0,8};

for (i=1; i<=3; i++) { cout>>Ф\nФ>>x[i]; }

7. ¬ каком случае размерность массива можно €вно не указывать?

8. ћожно ли изменить размерность ранее описанного массива?

9. ѕусть задан массив int x[]={6, 4, 9, 3, 2};  ак определить размерность массива?

10. ѕусть объ€влен массив int m[6]={5, 3, 2}; „ему равен элемент m[4]?

11. „то €вл€етс€ результатом программы: for (i=0; i<=5; i++) {A[i]=i; cout <<A[i]<<Ф У;}

12.  аким должен быть тип индекса массива?

13. ƒл€ чего в программах используютс€ двумерные массивы?  ак они описываютс€?

14. —колько индексов характеризуют конкретный элемент двумерного массива?

15. ѕусть задан c[i][j ]. акой индекс обозначает строки, а какой столбцы?

16.  ак в программе использовать значение конкретного элемента двумерного массива?

17.  ак можно заполнить двумерный массив?

18. ќпишите массив R из п€ти элементов, каждый из которых €вл€етс€ массивом из 10-ти вещественных чисел.

19.  акую структуру данных описывает двумерный массив?

20.  акой индекс двумерного массива измен€етс€ быстрее при последовательном размещении элементов массива в оперативной пам€ти?

21. ѕусть объ€влен массив int p[3][3]={2, 4, 6, 10, 1, 12, 4, 0, 0}; „ему равно значение элемента р[2][2]?

22. ѕусть объ€влен массив int m[2][2]={{5, 3}, {0, 2}}; „ему равен элемент m[1][2]?

23. ѕусть задан ј[4][5]. „ему равны максимальные значени€ индексов дл€ строк и дл€ столбцов?

24. „то €вл€етс€ результатом программы (на экране):

int x[3][2]={5,2,3,0,8,1};

for(i=1; i<=3; i++)

{ for(j=1; j<=3; j++) cout>>x[i]>>Ф У;

cout>>endl;}

 


—троки

2.1 ќпределение и объ€вление строки —++

—++ не поддерживает отдельный строковый тип данных.

—трока в —++ - это массив символов, оканчивающийс€ нулевым символом ('\0').

“аким образом, можно определить строки двум€ способами: как массив символов или как указатель на первый символ строки, например:

char str1[10] = "string1"; // объ€вление строки с помощью массива символов

»так, теперь подробнее. ћассив - это набор однородных значений, следовательно строка есть не что иное, как набор символов, и, соответственно, дл€ хранени€ строк можно использовать символьные массивы. Ќапример, строка "QWERTY" имеет тип char[7], а пуста€ строка " " имеет тип char[1]. ѕочему char[1]? »менно потому, что люба€ строка завершаетс€ так называемым нулевым символом, то есть символом, код которого в ASCII-таблице равен 0 (этот символ также €вл€етс€ escape-символом и его символьный эквивалент представл€етс€ как '\0'). Ѕлагодар€ этому свойству можно определить конец строки, если у ¬ас строка занимает меньшее количество символов, чем то количество, которое было указано в квадратных скобках при объ€влении массива, т.е. определить фактическую длину строки, хран€щейс€ в массиве.

ќдна из замечательных особенностей при работе со строками Ц это возможность упрощенной начальной инициализации. Ќапример,

ќбъ€вление char str[] = "ABCDE"; присваивает переменной-строке начальное значение "ABCDE". ј точнее, создает массив из 6 символов: 'A','B','C','D','E' и символа '\0'.

Ќачальна€ инициализаци€ символьного массива отличаетс€ от инициализации какого-либо другого массива Ц можно просто присвоить необходимую строку имени массива с пустыми квадратными скобками. —++ сам подсчитает длину строки и выделит соответствующий объем пам€ти под массив дл€ размещени€ в нем требуемой строки.

—разу необходимо отметить, что —++ сам автоматически сделает последний элемент массива нулевым символом, то есть, хот€ в данном случае ¬ы массиву str присваиваете строку "ABCDE", длина которой составл€ет 5 символов, C++ выдел€ет пам€ть под 6 символов, записывает туда строку и затем в последний (п€тый при счете от 0) записывает нулевой символ.

—ледует также отметить, что при начальной инициализации символьного массива (как и любого другого) можно указывать в квадратных скобках его размер с целью дальнейшего использовани€ массива еще дл€ каких-либо целей (например, дл€ хранени€ другой какой-либо строки):

ќбъ€вление char str[10] = "ABCDE"; создает массив из 10 символов, и первые п€ть элементов этого массива принимают значени€ 'A','B','C','D' и 'E' соответственно, остальные символы будут ноль-символы.

¬ данном случае в первые 5 элементов массива записываетс€ строка "ABCDE", а всем остальным элементам присваиваютс€ нули.

ƒл€ начальной инициализации символьного массива можно использовать правила инициализации произвольного массива, то есть, использу€ фигурные скобки, только в данном случае придетс€ €вно указывать нулевой символ, которым заканчиваетс€ строка. –ассмотрим предшествующий пример с использованием общих правил начальной инициализации массива.

char str[]={'A','B','C','D','E','\0'};

 ак видите упрощенный вариант начальной инициализации строкового массива значительно проще и удобнее, но еще раз отметим, что его можно использовать только дл€ символьных массивов.

Ј “ипична€ ошибка программировани€. Ќе выдел€етс€ достаточно места в массиве символов дл€ хранени€ нулевого символа, завершающего строку.

Ј “ипична€ ошибка программировани€. —оздание или использование "строки", котора€ не содержит завершающего нулевого символа.

Ј “ипична€ ошибка программировани€. ѕутают символьные и строковые константы.

—имвольна€ константа Ц это один символ, заключенный в апострофы, например: 'A' или '\n'. —трокова€ константа Ц это последовательность символов, заключенна€ в двойные кавычки. ¬ числе символов строки могут находитс€ любые символьные константы, например, "Visual C++\n" состоит из следующих символов: 'V', 'i', 's', 'u', 'a', 'l', ' ', 'C', '+', '+', '\n', '\0'. “аким образом, "A" Ц это строкова€ константа и состоит из двух символов: 'A' и '\0'. —оседние строковые константы трансл€тором "склеиваютс€", например: "јЅ¬" "√ƒ≈" означает то же, что "јЅ¬√ƒ≈".

–ассмотрим небольшой пример:

//«адана строка, скопировать ее в символьный массив. #include УiostreamФusing namespace std;void main(){ char str1 [ ] = "1234567890", /* объ€вл€ем символьный массив str1 и инициализируем его */ str2[11]; // объ€вл€ем символьный массив без инициализации /* в цикле пока не встретитс€ конец строки, присваиваем текущему элементу массива str2 символ из массива str1 */ for(int i = 0; str1[i]!= '\0'; i++) str2[i] = str1[i]; // копируем ноль-символ в str2. str2 [i] = '\0'; cout << str2 << '\n'; // вывод строки на экран}

ќбратите внимание, выход из цикла происходит, когда str1[i] равно ноль-символу, т.е. ноль-символ не копируетс€ в str2, следовательно, это нужно сделать за циклом.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-07; ћы поможем в написании ваших работ!; просмотров: 2438 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ћаской почти всегда добьешьс€ больше, чем грубой силой. © Ќеизвестно
==> читать все изречени€...

2121 - | 1987 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.021 с.