Задание:
Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее на экран.
Эта же задача, но без динамического массива и просто си
Задание:
Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее на экран.
Эта же задача, но без динамического массива и просто си
Хочется вспомнить былое, так что решил поднять старые задачки и решить их снова, и по-новому.
Матрица называется нулевой, если все ее элементы равны нулю. Напишите программу, которая принимает с клавиатуры число N, создает нулевую матрицу размера N на N и выводит ее на экран.
Исходник решил написать, используя динамический массив и си++ стиль. Комментариев по коду достаточно. Теория по динамическим массивам в си++
Сделать элементы главной диагонали матрицы одним цветом, выше — другим, ниже третьим.
Public Sub glav_diag()
Dim i As Integer
Dim j As Integer
n = InputBox("n=")
For i = 1 To n
For j = 1 To n
If i = j Then
Cells(i, j).Interior.Color = vbGreen
End If
If i < j Then
Cells(i, j).Interior.Color = vbRed
End If
If i > j Then
Cells(i, j).Interior.Color = vbBlack
End If
Next j
Next i
End Sub
Проход по всему массиву и если i=j (главная диагональ) то зеленым, если i<j (выше) то красный, в ином случае черным. Пример:
Внезапно появились лабораторные :)
Задачка такая:
Создать матрицу размера 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]
Вот такой простой код. Все комментарии в коде.
Результат работы:
Ранее писал о простых числах. Нахождение простых чисел решетом эратосфена на C# тут сейчас же тоже самое на C++:
#include "stdafx.h"
#include <math.h>
void erato(int number)
{
bool *a = new bool[number];
for (int i = 0; i < number; i++)
a[i] = true;
for (int i = 0; i < number; i++)
{
for (int i = 2; i < sqrt(number*1.0) + 1; ++i)
{
if (a[i])
{
for (int j = i * i; j < number; j += i)
{
a[j] = false;
}
}
}
}
for (int i = 2; i < number; i++)
{
if (a[i])
printf("%d ", i);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
scanf("%d", &n);
erato(n);
return 0;
}
Интересная вчера попалась задача. Есть стандартная база данных для MS Access. «Борей» называется. Что это может значить мне так и не понятно. Нужно написать программу которая загружает список таблиц в combobox, а потом по выбору из него таблицы загружает содержимое в DataGridView. Язык реализации C#.
Голову поломал, ушло 7 часов, но сделал. Я буду рад, если кому пригодится.
Задача:
Написать программу, которая принимает параметры, задающие геометрическую последовательность, а так же число n — количество элементов последовательности. Записать результат работы программы в файл.
Задача: Дан одномерный массив А(n). Получить сумму тех элементов массива, которые не четны и отрицательны.
Идея в том, чтобы заполнить массив, вывести его, а потом в том же цикле проверять, являются ли элементы подходящими. Условие первое — нечетность. Остаток от деления на 2 должен быть не равен нулю. Второе условие — элемент массива меньше нуля. Таким образом выбираются необходимые нам элементы.
Остается лишь сложить эти элементы между собой.
Вот исходный код:
Continue reading
Случилось интересное. Некоторое время назад я разместил код метода Симпсона на pascal. После его индексации на него стало приходить большое количество поисковых запросов (до 30% от всех за сутки), и я решил написать этот метод на основных языках. Пусть первым будет C#.
В коде объявлена дополнительная функция double Y(double p) Возвращает значение функции в данной точке. Т.е при решении ваших задач достаточно просто изменить формулу внутри этой функции.
Условие: Написать макрос для Word, который запрашивает слово и выделяет его каким-либо образом в тексте.
Алгоритм: пробежаться по всем словам в тексте, и если слово совпадает с заданным- применить к нему некоторые изменения.