Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 18

//7.

01
#include<iostream>
using namespace std;
int main(){
int n,m;
double a[100][100];
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
//7.02

#include <iostream>
using namespace std;
#define MAX 16

void Nhapmang(int a[][MAX], int &n);


void Xuatmang(int a[][MAX], int n);
int fibo(int n){
if(n==1||n==2)
return 1;
return fibo(n-1)+fibo(n-2);
}
void Nhapmang(int a[][MAX], int &n){
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
a[i][j]=fibo(i+j+1);
}
}
}
void Xuatmang(int a[][MAX], int n){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<< a[i][j]<<" ";
}
cout<<endl;
}
}

int main()
{
int n, a[MAX][MAX];
Nhapmang(a,n);
Xuatmang(a,n);

return 0;
}
//7.03
#include<iostream>
#define MAXR 100
#define MAXC 100
void NhapMaTran(int a[][MAXC], int &n){
std::cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
std::cin>>a[i][j];
}
}
}
bool isMaTranDonVi(int a[][MAXC], int n){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j&&a[i][j]!=1||i!=j&&a[i][j]!=0)
return 0;
}
}
return 1;
}
int main() {
int a[MAXR][MAXC], n;
NhapMaTran(a, n);
std::cout << std::boolalpha << isMaTranDonVi(a, n);
return 0;
}
//7.04
#include<iostream>
#define MAXR 100
#define MAXC 100
void NhapMaTran(int a[][MAXC], int &n){
std::cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
std::cin>>a[i][j];
}
}
}
bool isMaTranDonVi(int a[][MAXC], int n){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j&&a[i][j]!=1||i!=j&&a[i][j]!=0)
return 0;
}
}
return 1;
}
//7.05
#include<iostream>
using namespace std;
int main(){
double a[100][100];
int n,m;
double s=0;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}

for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(i==j){
s+=a[i][j];
}
}
}
cout<<s;
return 0;

}
//7.06
#include <iostream>

using namespace std;

int main() {
int n,m; // Số dòng và số cột của ma trận

cin >> n>>m;

// Khai báo ma trận A


float A[100][100];

// Nhập giá trị cho ma trận A


for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> A[i][j];
}
}

// Kiểm tra xem A có phải là ma trận đường chéo hay không


bool isDiagonalMatrix = true;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if (i != j && A[i][j] != 0) {
// Nếu có một phần tử nằm ngoài đường chéo chính khác 0
isDiagonalMatrix = false;
break;
}
}
if (!isDiagonalMatrix) {
break;
}
}

// In kết quả
if (isDiagonalMatrix) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}

return 0;
}
//7.07
#include<iostream>
using namespace std;
#define MAXR 100
#define MAXC 100
bool doixung(double a[][MAXC],int n, int m){

for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i][j]!=a[j][i])
return false;
}
}
return true;
}
void nhap(double a[][MAXC],int n,int m){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
}
int main(){
double a[MAXR][MAXC];
int n,m;
cin>>n>>m;
nhap( a, n, m);
if(doixung(a,n,m))
cout<<"Yes"<<endl;
else
cout<<"No";
return 0;

}
//7.08
#include <iostream>

using namespace std;

const int MAX_SIZE = 100; // Giả sử ma trận có kích thước tối đa là 100x100

bool isFrobeniusMatrix(int m, int n, float matrix[MAX_SIZE][MAX_SIZE]) {


int countNonZeroColumn = 0;
// Kiểm tra tất cả các phần tử trên đường chéo chính có giá trị bằng 1
for (int i = 0; i < m && i < n; ++i) {
if (matrix[i][i] != 1.0) {
return false; // Phần tử trên đường chéo chính khác 1
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(i<j&&matrix[i][j]!=0)
return false;
}
}
// Đếm số cột có ít nhất một phần tử khác không dưới đường chéo chính
for (int j = 0; j < n; ++j) {
bool hasNonZero = false;
for (int i = j + 1; i < m && i < n; ++i) {
if (matrix[i][j] != 0.0) {
hasNonZero = true;
break;
}
}
if (hasNonZero) {
countNonZeroColumn++;
if (countNonZeroColumn > 1) {
return false;
}
}
}

// Nếu có tối đa một cột có ít nhất một phần tử khác không dưới đường chéo
chính, là ma trận Frobenius
return true;
}

int main() {
int m, n;
cin >> m;
cin >> n;

float matrix[MAX_SIZE][MAX_SIZE];

for (int i = 0; i < m; ++i) {


for (int j = 0; j < n; ++j) {
cin >> matrix[i][j];
}
}

// Kiểm tra và in kết quả


if (isFrobeniusMatrix(m, n, matrix)) {
cout << "Yes";
} else {
cout << "No";
}

return 0;
}
//7.09
#include<iostream>
using namespace std;
#define MAXR 100
#define MAXC 100
void cong2matran( float a[MAXR][MAXC],float b[MAXR][MAXC],float c[MAXR]
[MAXC],int n, int m){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
c[i][j]=a[i][j]+b[i][j];
}
}
}
void nhap(float a[][MAXC],int n,int m){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
}
int main(){
float a[MAXR][MAXC],b[MAXR][MAXC],c[MAXR][MAXC];
int n,m,k,l;
cin>>n>>m;
nhap( a, n, m);
cout<<endl;
cin>>k>>l;
nhap(b,k,l);
cout<<endl;
cong2matran( a,b,c, n, m);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<c[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
//7.10
#include<iostream>
using namespace std;
#define MAXR 100
#define MAXC 100
void nhan2matran( float a[MAXR][MAXC],float b[MAXR][MAXC],float c[MAXR]
[MAXC],int n, int m,int k,int l){
for(int i=0;i<n;i++){
for(int j=0;j<l;j++){
c[i][j]=0;
for(int z=0;z<m;z++){
c[i][j]+=a[i][z]*b[z][j];
}
}
}
}
void nhap(float a[][MAXC],int n,int m){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
}
int main(){
float a[MAXR][MAXC],b[MAXR][MAXC],c[MAXR][MAXC];
int n,m,k,l;
cin>>n>>m;
nhap( a, n, m);
cout<<endl;
cin>>k>>l;
nhap(b,k,l);
nhan2matran( a,b,c, n, m,k,l);
for(int i=0;i<n;i++){
for(int j=0;j<l;j++){
cout<<c[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
//8.4

#include <iostream>
#include <string.h>
using namespace std;
#define MAX 300

void DemKyTu(char s[]);


int myStrcmp(char s1[MAX], char s2[MAX]);
int myStrlen(char s[], int k);

int main()
{
char s[MAX];
//gets(s); //Nhap chuoi s
cin.getline(s,MAX);
if (myStrcmp(s, "") == 0)
cout << "Chuoi rong." << endl;
else
DemKyTu(s);

return 0;
}
void DemKyTu(char s[])
{
int dem_ky_tu[256] = {0};

for (int i = 0; i < myStrlen(s, MAX); i++)


{
unsigned char ky_tu = s[i];
dem_ky_tu[ky_tu]++;
}

for (int i = 0; i < myStrlen(s, MAX); i++)


{
unsigned char ky_tu = s[i];
if (dem_ky_tu[ky_tu] > 0)
{
cout << ky_tu << ": " << dem_ky_tu[ky_tu] << endl;
dem_ky_tu[ky_tu] = 0;
}
}
}

int myStrcmp(char s1[MAX], char s2[MAX])


{
int i = 0;
while (s1[i] != '\0' && s1[i] == s2[i])
{
i++;
}
return s1[i] - s2[i];
}

int myStrlen(char s[], int k)


{
int i = 0;
while (i < k && s[i] != '\0')
{
i++;
}
return i;
}

You might also like