С++, Получить индексы максимального и минимального элементов массива

Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее на экран. Затем найдите позиции (номер строки и столбца) максимального и минимального элементов этой матрицы.

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

Continue reading

C++, Найти минимальный и максимальный элемент массива

Задача:

Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее на экран. Затем найдите ее максимальный и минимальный элементы.

Все просто. Заполняем, пробегаем по всей матрице и смотрим, если нам встретился элемент, который меньше, чем текущее значение минимума, то перезаписываем его. То же самое с максимумом:

Continue reading

C++, Единичная матрица

Задание

Квадратная матрица называется единичной, если все ее диагональные элементы равны единице, а остальные — нулю. Напишите программу, которая принимает с клавиатуры число N, создает единичную матрицу размера N на N и выводит ее на экран.

Штука тут в том, что нужно заполнить диагонали единицами, а все остальное нулями. Чтобы так сделать, нужно понять, какая формула у диагоналей:

  • Формула главной диагонали: i == j
  • Формула побочной диагонали: j==n-i-1

Остается это только записать в код:

Continue reading

C++, Динамические массивы, Нулевая матрица :)

Хочется вспомнить былое, так что решил поднять старые задачки и решить их снова, и по-новому.

Матрица называется нулевой, если все ее элементы равны нулю. Напишите программу, которая принимает с клавиатуры число N, создает нулевую матрицу размера N на N и выводит ее на экран.

Исходник решил написать, используя динамический массив и си++ стиль. Комментариев по коду достаточно. Теория по динамическим массивам в си++

Continue reading

Работа с матрицей в VBA

Внезапно появились лабораторные :)

Задачка такая:

Создать матрицу размера n x n, заполнить случайными числами от (-20 до 30). Сформировать одномерный массив от 1 до n, каждый элемент которого равен произведению положительных четных элементов данного столбца.

Решаем так (естественно все делаем в Excel):

[code lang=»vb»]

Public Sub glav_diag()
Dim i As Integer ‘ Индекс строки
Dim j As Integer ‘ Индекс столбца
Dim q As Double ‘ Переменная результата для столбца
Dim cond As Integer ‘ Дополнительная переменная. Сколько раз выполнилось условие. Ее в принципе можно сделать булевой

n = InputBox(«n=») ‘ Просим ввести n — размерность массива. У нас он всегда квадратный

ReDim arr(n, n) ‘ Объявляем его
q = 1 ‘ Так как у нас по условию «произведение», то мы вынуждены написать тут 1, иначе (в случае 0) произведение всегда будет равно 0
cond = 0 ‘ условие пока не выполнилось
‘ Generation of array
For i = 1 To n
For j = 1 To n
arr(i, j) = Int((-20 — 30 + 1) * Rnd + 30) ‘ Рандом от -20 до 30
Cells(i, j).Value = arr(i, j) ‘ Забить это в ячейку
Cells(i, j).Interior.ColorIndex = xlNone ‘ Убрать цвет если он был
Next j
Next i

‘ Обработка и вычисления
For j = 1 To n
For i = 1 To n
If ((arr(i, j) > 0) And (arr(i, j) Mod 2 = 0)) Then ‘ Если значение массива больше 0 и четное
q = q * arr(i, j) ‘ тогда домножаем его на q и записываем новый результат в q
cond = cond + 1 ‘ Если условие выполнилось увеличиваем переменную
Cells(i, j).Interior.Color = vbCyan ‘ Закрашиваем соответствующую ячейку на листе цветом
End If
Next i
If (cond > 0) Then ‘ Если условие выше выполнилось хотя бы раз…
Cells(n + 1, j).Value = q ‘ тогда записываем значение вычислений в ячейку ниже нашей матрицы
Cells(n + 1, j).Interior.Color = vbGreen ‘ и красим в заленый
Else
Cells(n + 1, j).Value = 0 ‘ Если не выполнилось пишем туда 0 (таких элементов нет) просто q записать нельзя, так как он равен 1
Cells(n + 1, j).Interior.Color = vbGreen ‘ и тоже в зеленый
End If
cond = 0
q = 1
Next j
End Sub

[/code]

Вот такой простой код. Все комментарии в коде.

Скачать тестовым документом

Результат работы:

Continue reading

Pascal: Сумма некоторых элементов массива

Задача: Дан одномерный массив А(n). Получить сумму тех элементов массива, которые не четны и отрицательны.

Идея в том, чтобы заполнить массив, вывести его, а потом в том же цикле проверять, являются ли элементы подходящими. Условие первое — нечетность. Остаток от деления на 2 должен быть не равен нулю. Второе условие — элемент массива меньше нуля. Таким образом выбираются необходимые нам элементы.

Остается лишь сложить эти элементы между собой.

Вот исходный код:
Continue reading

C++: Заполнить матрицу нолями, кроме главной и побочной диагоналей

Это во многом стандартное заполнение, но с условиями. Главная диагональ вычисляется по формуле i==j, а побочная j==N-i-1

Такие образом, если элемент находится на главной или побочной, заполняем случайно, иначе-нуликами.

Continue reading

C++: Нижнеугольная матрица

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

Continue reading

C++: Есть ли число в массиве?

Задача: написать программу, которая заполняет массив из N элементов случайными числами и проверяет, есть ли в массиве введенное число

Сводится к написанию функции проверки есть ли оно.

bool isNumberInMassive(int k,int massive[],int size)
{
    for (int i=0;i<size;i++)
    {
        if (k==massive[i])
        {
            return true;
        }
    }
    return false;
}

Если пояснять, то тут просходит следущее: в функцию передается число, которое нужно проверить на наличие в массиве, массив и размерность массива. Далее пробегая в цикле проверяем, совпало ли значение элемента с нашим числом? Если да — возвращаем истину, по окончании же цикла (если нашел бы — выкинул бы истину) возвращаем ложь.

Continue reading