Дневник начинающей программистки, запись номер 10, и я наверное, прекращаю их нумеровать - сбиваюсь со счёта. Возможно даже, это не десятая запись)))
Алёна снова с вами, рассказывает о нелегкой доле крашеной блондинки, решившей освоить С++ самостоятельно, используя только литературу и все доступные ресурсы Сети. А их, кстати, изрядное количество.
Но ладно, перейду к делу. Сегодня у меня на повестке дня массивы - это такой способ хранения множества данных в одной куче и под одним именем. Но в упорядоченной куче - каждый элемент массива имеет идентификатор, через который и осуществляется доступ к этим самым данным. Как наглядный пример - вешалка в гардеробе. Номерки - это идентификаторы, а одежда, которая висит на крючках - элементы массива. Это одномерный массив, цифры на номерах ведь идут по порядку. Или вектор.
Ещё пример - шахматная доска, и тут каждой клетке соответствуют два идентификатора, буква и цифра. "Е2 - Е4". Помните знаменитый ход гроссмейстера Бендера? 😊 Это массив двумерный, или матрица.
И вот, дойдя до этого места, я поняла - хочу. Матрицу, мать её, свою собственную. Пусть и честно слямзенную у Пифагора, таблица которого - она самая и есть. Вот и задачка нарисовалась - создать двумерный массив 10х10, а потом разместить в его ячейках произведения соответствующих чисел. И желательно, чтобы всё это отображалось на экране в приемлемом для человеческого восприятия виде. Вот то, что получилось:
Теперь сам код, начало:
И конец:
Предупреждаю сразу, толком работать с выводом в консольном окне я ещё не умею. Сказываются пробелы в образовании, из инструментов форматирования строк знаю только \n, который переводит курсор на новую строку. Полагаю, есть и другие (попадался мне ещё \t), но я с ними пока незнакома, поэтому выравнивала столбцы по-своему, с применением условного оператора if и расстановкой пробелов в нужных местах. И главное - результат!
Теперь - пояснения. В строках 8-9 объявляю два массива, одномерный mas1 и двумерный mas2 (сама таблица). Затем при помощи цикла for заполняю mas1 цифрами от 1 до 10. Эти цифры будут отображаться в самой верхней строке, и в начале последующих (первая цифра каждой строки). А также использоваться в качестве множителей при заполнении mas2, что и проделывает второй цикл for в строках 16-24, и там, кстати, присутствует вложенный цикл for - цикл внутри цикла. Как матрёшка. И вот это, самое основное в программе, оказалось самым простым...🤔
А потом началось изнасилование головного мозга - вывод результата на экран. Нет, вывести цифры просто, при помощи тех же циклов. Проблема заключается в том, что в таблице присутствуют и двузначные и однозначные числа, и поэтому самая верхняя строка оказывается самой короткой (там только однозначные), а самая нижняя - самой длинной. А сама таблица - перекошенной. Поэтому, в строке 31 оператор if проверяет кучу условий, и если хоть одно из них верно - после очередной цифры печатается дополнительный пробел. В строке 34 задан пропуск трёх строк, для отступа сверху. То же самое делает строка 48 - отступ слева. Ну а внутри цикла for в строках 38-47 - опять куча операторов if и условий, в которых нужно вставлять дополнительные пробелы...
Вот так я массивы освоила. И, видимо, мозг перенапрягла, поэтому сегодня залезу в одну стрелялку - а завтра про неё расскажу. Всё равно собиралась.
cout<<"Good bye"<<endl;
return 0;