Другие языки программирования и технологии

Сложная задача по C++.нЕ ДЛЯ НОВИЧКОВ. Блок схему кто сможет или решение

1)Дана матрица Т размерностью S на D. Вычесть из каждого элемента N-го столбца матрицы его порядковый номер. Значение элементов матрицы и N вводить с клавиатуры.

2)Вывести ближайШее к данному числу N и большее N совершенное число. Совершенно число это число равное сумме своих правильных (т. е меньших самого числа) делителей.
Не новички не будут рисовать блок-схемы, смысл которых исчез полвека назад. Если заказчик уж очень требует, есть программы по автоматическому построению блок-схем по коду. Вообще же эти задачи именно для только начинающих изучение программирования.
P.S. Первая задача:
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int i,j,n,m,k; float a[20][20];
cout<<"Enter the sizes of array: "; cin>>n>>m;
for(i=0;i<n;i++){
cout<<"Enter "<<m<<" elements of line "<<i+1<<": ";
for(j=0;j<m;j++)cin>>a[i][j];}
for(i=0;i<n;i++){for(j=0;j<m;j++)cout<<setw(8)<<a[i][j]; cout<< endl;}
cout<<"Enter N: "; cin>>k;
for(i=0;i<n;i++)a[i][k-1]-=i*m+k;
for(i=0;i<n;i++){for(j=0;j<m;j++)cout<<setw(8)<<a[i][j]; cout<< endl;}
cout<<"\nPress Enter for exit\n"; cin.get(); cin.get();}
Сергей Красов
Сергей Красов
64 460
Лучший ответ
Алексей Шлыков-Перехрест cскажи что за проги пожалуйста
Алексей Шлыков-Перехрест Почему смысл блок схем исчез пол века назаД?
Вторая задача:

#include "stdafx.h"
#include <iostream>
using namespace std;

bool IsPerfectNumber(int n, bool print = false) {
 int s = 0;
 for (int i = 1; i < n; i++){
  if (n % i == 0){
   s += i;
   if (print)
    cout << i << " ";
  }
 }
 if (print)
  cout << endl;
 return (n == s);
};

int main(){
 int n;
 cout << "N = ";
 cin >> n;
 do{
  n++;
 } while (!IsPerfectNumber(n));
 IsPerfectNumber(n, true);
 cout << n;
 cin.get();
 cin.get();
 return 0;
}
Сложная задача?
Вот я вам дам сложную задачу. Сочетания без повторений по 3 из 52 нумеруются определенным образом, нужно составить обратный алгоритм - который из самого сочетания определит его номер. Причем желательно алгоритм с быстродействием О (1).
Алексей Шлыков-Перехрест ладно ладно) выпендрились) только мне тем что вы понтуетесь не поможет
Почему же "не для новичков"? У старичков альтруизм не в решении "домашек" обычно проявляется.
Я тоже обрадовался - думал, в кои-то веки интересная задача. Ан нет, опять матрицы и совершенные числа.
Алексей Шлыков-Перехрест помоги пожалуйста
/*
1)Дана матрица Т размерностью S на D. Вычесть из каждого элемента
N-го столбца матрицы его порядковый номер. Значение элементов матрицы
и N вводить с клавиатуры.
*/

#include <iostream>

using namespace std;

int main(){

int S,D;

cout << "Enter size of matrix: \n";
cout << "Enter strings: ";
cin >> S;
cout << "Enter columns: ";
cin >> D;

int **T = new int*[S];

for(int i(0); i < S; i++)
T[i] = new int[D];

cout << "Enter values: \n";

for(int i(0); i < S; i++){
for(int j(0); j < D; j++){
cin >> T[i][j];
T[i][j] -= j;
}
}

for(int i(0); i < S; i++){
for(int j(0); j < D; j++){
cout.width(3);
cout << T[i][j];
}
cout << endl;
}

system("pause >> void");
return 0;
}
================================
/*
Вывести ближайШее к данному числу N и большее N совершенное число.
Совершенно число это число равное сумме своих правильных (т. е
меньших самого числа) делителей.
*/
#include <iostream>

using namespace std;

int main(){

int N;
int sum = 0;

cout << "Enter N: ";
cin >> N;

for(int i(N); i > 0; i--)
if((N % i == 0) && (i != N)){
cout << i << endl;
sum += i;
}

cout << "\nSum = " << sum << endl;

system("pause >> void");
return 0;
}
Aizirek Omurbekova
Aizirek Omurbekova
5 430
Алексей Шлыков-Перехрест спасибо дружище ты очень выручил спасибо спасибо спасибо, чем я могу послужить тебе?
Давид Овакимян Но Ваша программа НЕ ВЫВОДИТ совершенное число, ближайшее к N и большее N! Она выводит или само число (если введено совершенное) или единицу