Прошу помощи в решении простейших задач:)

  • Автор темы Freshlime
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

Freshlime

#1
Нужна ваша ценнейшая помощь в знании С++. Помогите решить ну хотя бы одну задачу.:( :(
1. Вводится целое число N. Вывести список биномиальных коэффициентов для степени N, используя для вычислений массив.
2. Ввести текст из файла. Сделать частотный анализ - то есть напечатать в столбец символы, которые встретились в этом тексте и количество раз, сколько встретился каждый символ, при этом список должен быть упорядочен по убыванию частоты. Пример: "молоко" - "о—3, м-1,л-1,к-1".
3. Дана строка символов (вводится с клавиатуры или из файла). Словом считается набор символов латинского алфавита отделенный началом или концом строки, символами «пробел» и знаками препинания. Посчитать: количество слов в строке, среднюю, максимальную и минимальную длину слова.
4. Дана строка символов (вводится с клавиатуры или из файла). Определить является ли она правильным скобочным выражением (т.е. все открытые скобки закрыты и нет неоткрытых закрытых скобок). Учитывать только круглые скобки. В следующих задачах М и N задаются программистом.
5. Заполнить двумерный массив NxN по спирали с ячейки (1,1) сходясь к центру числами от 1 до N2. 6. Заполнить двумерный массив MxN случайными числами и упорядочить четные столбцы по возрастанию, а нечетные по убыванию. Пара чисел называется соседней, если их номера строки и столбца отличаются не более, чем на 1.
7. Двумерный массив MxN заполняется случайными числами от 0 до 4. Вывести в файл сам массив. Посчитать и вывести в файл количество соседних пар одинаковых чисел.
8. Сглаживанием называется операция над двумерным массивом, при которой каждый элемент заменяется на среднее арифметическое его соседних элементов. Двумерный массив заполняется случайными числами. Вывести его в файл и вывести в этот же файл сглаженный массив.
9. Матрица NxN заполняется случайными числами. Посчитать среднее арифметическое элементов главной диагонали и вывести элементы диагоналей, параллельных главной, если их среднее арифметическое больше, чем среднее арифметическое главной диагонали.
10. Написать функцию substring поиска первого вхождения подстроки в строку. Программа считывает текстовый файл, пользователь вводит слово с клавиатуры. Напечатать количество вхождений этого слова в файл, используя функцию substring.
-
Заранее огромное спасибо!
 
S

Sensei

#2
5. Заполнить двумерный массив NxN по спирали с ячейки (1,1) сходясь к центру числами от 1 до N2.
лови,

Код:
	  const int n = 4; // ---- Размерность матрици -----
// -------
int aMatrix[n][n];
int m_inc[4][2] = {{0,1},{1,0},{0,-1},{-1,0}};
// -------

int p1 = 0, p1 = 0;
int L = 2*n;
int i = n;
int s = 0;
for (int k = 0; k < n*n; k++) {
aMatrix[p1][p2] = k + 1;
i--;
if (i == 0) {
s = (s+1) - ((s+1)/4)*4;
L--;
i = L / 2;
}
p1 += m_inc[s][0];
p2 += m_inc[s][1];
}
:(
 
S

Sensei

#4
6. Заполнить двумерный массив MxN случайными числами и упорядочить четные столбцы по возрастанию, а нечетные по убыванию. Пара чисел называется соседней, если их номера строки и столбца отличаются не более, чем на 1.
Код:
	  const int Rows = 3, Columns = 4; // ---- Размерность матрици -----
// -------
int aMatrix[Rows][Columns] = {{1,9,3,1},{4,8,6,3},{7,2,9,9}};
// -------

int i = 0;
while (i < Columns) {

for (int k = 0; k < Rows; k++) {
for (int z = k + 1; z < Rows; z++) {
// ---- упорядочивание столбца по убыванию ----
if (aMatrix[k][i] < aMatrix[z][i]) {
int TemporaryValue = aMatrix[k][i];
aMatrix[k][i] = aMatrix[z][i];
aMatrix[z][i] = TemporaryValue;
}

// ---- упорядочивание столбца по возрастанию чисел ----
if (i+1 < Columns)
if (aMatrix[k][i+1] > aMatrix[z][i+1]) {
int TemporaryValue = aMatrix[k][i+1];
aMatrix[k][i+1] = aMatrix[z][i+1];
aMatrix[z][i+1] = TemporaryValue;
}
}
}
i += 2;
}
:(
 
F

Freshlime

#5
Сенсей, была бы моя воля, я бы памятник вам на Красной площади отгрохал за труды.:(
 
A

Alias-NK

#6
лови,

Код:
	  const int n = 4; // ---- Размерность матрици -----
// -------
int aMatrix[n][n];
int m_inc[4][2] = {{0,1},{1,0},{0,-1},{-1,0}};
// -------

int p1 = 0, p1 = 0;
int L = 2*n;
int i = n;
int s = 0;
for (int k = 0; k < n*n; k++) {
aMatrix[p1][p2] = k + 1;
i--;
if (i == 0) {
s = (s+1) - ((s+1)/4)*4;
L--;
i = L / 2;
}
p1 += m_inc[s][0];
p2 += m_inc[s][1];
}
:)
небольшая помарка: строка int p1 = 0, p1 = 0; должна выглядеть как int p1 = 0, p2 = 0; . очепятка
 
F

Freshlime

#7
Огромное спасибо:) Благодаря Вам сдал информатику на 5 :)))
 
Статус
Закрыто для дальнейших ответов.