Разработка программ на С++ и в системе MathCAD

Автор работы: Пользователь скрыл имя, 18 Марта 2012 в 22:29, курсовая работа

Описание работы

В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент, Получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы какой-нибудь строки и столбца, на пересечении которых расположен элемент с найденным значением

Файлы: 1 файл

Разработка программ на С++ и в системе MathCAD.DOC

— 106.50 Кб (Скачать файл)


ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ

ЭЛЕКТРОНИКИ И МАТЕМАТИКИ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

 

 

 

 

 

 

 

 

 

 

 

«Разработка программ на С++ и в системе MathCAD»

Вариант  № 26

 

 

 

 

 

 

 

 

 

 

 

 

Автор реферата:

Носов П. Д.

Гр. РС-21

ФИТ

 

 

Руководитель семинара:

Назарова   М.В.

 

 

 

 

 

 

 

 

 

 

 

 

Москва 2009

Вариант 26

Номера задач:

№9

Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения.

№116г

Даны натуральное число n, действительное число x. Вычислить: при n≥1 произведение

№555

Треугольник Паскаля называется числовой треугольник

                                1                             

                             1     1                          

                          1     2     1                       

                       1     3     3     1                    

                    1     4     6     4     1                 

                 1     5    10    10     5     1              

              1     6    15    20    15     6     1           

           1     7    21    35    35    21     7     1        

        1     8    28    56    70    56    28     8     1     

     1     9    36    84   126   126    84    36     9     1 

…………………………………………………….

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

№ 684

В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент, Получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы какой-нибудь строки и столбца, на пересечении которых расположен элемент с найденным значением

№406*

Пусть задан вектор х (х1, х2, х3… хn). Составить подпрограмму-функцию для вычисления величины.

N=0, если х1≠0

N=n, если х1= х2= х3=…- хn=0

N=m, если х1= х2= х3=…=хm=0 и хm+1≠0 (m<n)

Задача № 9

Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения.

Дано: R1, R2, R3

Найти: G=1/ R1+1/ R2+1/ R3

S=1/G

Алгоритм:

1)      Запрос и ввод

2)      Вычисление G

3)      Вычисление S

4)      Вывод S

#include <vcl.h> // Я не знаю что это означает, оно автоматически задается в Builder6

#pragma hdrstop // Я не знаю что это означает, оно автоматически задается в Builder6

#pragma argsused // Я не знаю что это означает, оно автоматически задается в Builder6

#include<iostream.h>

#include<fstream.h>

#include<conio.h>

#include<complex.h>

complex <double> resist(complex <double> R1, complex <double> R2,complex <double> R3);

complex <double> resist(complex <double> R1, complex <double> R2,complex <double> R3)

{

complex <double> Re;

complex <double> one;

one=1;    

Re=one/((one/R1)+(one/R2)+(one/R3));

return Re;

}

void main(){

complex <double> R1; //объявление переменных сопротивлений

complex <double> R2;

complex <double> R3;

complex <double> Re;

cout<<"vvedite resistor R1:"<<endl; // Ввод значений сопротивлений

cin>>R1;

cout<<"vvedite resistor R2:"<<endl;

cin>>R2;

cout<<"vvedite resistor R3:"<<endl;

cin>>R3;

Re=resist(R1,R2,R3); // вызов ф-ции resist и вычисление эквивалентного сопротивления

cout<<"R1="<<R1<<" "<<"R2="<<R2<<" "<<"R3="<<R3<<endl; //эхо вывод на экран

cout<<"ekviv soprotivlenie Re="<<Re<<endl;

ofstream ptk("k9.txt"); //объявление потока вывода

if(ptk==0)cout<<"error otkr faila"<<endl; //проверка открытия файла

ptk<<"R1="<<R1<<" "<<"R2="<<R2<<" "<<"R3="<<R3<<endl; //эхо-вывод в файл

ptk<<"ekviv soprotivlenie Re="<<Re<<endl;

getch();

}

Тест: вводим 1 1 1

Результат: S=0.3333

Задача №116 г

Даны натуральное число n, действительное число x. Вычислить: при n≥1 произведение

Дано: n, x

Вычислить:

Алгоритм:

1)      Запрос и ввод

2)      Объявление действительной переменной х и ее обнуление

3)      Объявление натуральной переменной n и ее обнуление

4)      Объявление значения ряда

5)      Объявление счетчика цикла

6)      Вычисление и вывод

 

#include <vcl.h> // Я не знаю что это означает, оно автоматически задается в Builder6

#pragma hdrstop // Я не знаю что это означает, оно автоматически задается в Builder6

#pragma argsused // Я не знаю что это означает, оно автоматически задается в Builder6

#include<iostream.h>

#include<conio.h>

#include<math.h>

#include<fstream.h>

double fact(int x); // прототип функции факториала

double fact(int x){

int i;

double r=1;

if(x==0)return 1;

for(i=1;i<=x;i++)r=r*i;

return(r);

}

void main(){

double x=0; // объявление действительной переменной х и ее обнуление

int n=0; // объявление натуральной переменной n и ее обнуление

double pro=1; // объявление значения ряда

int k; // объявление счетчика цикла

cout<<"vvedite deistv x:"<<endl; //запрос х

cin>>x; //ввод x

cout<<"vvedite natur n:"<<endl; //запрос n

cin>>n; //ввод n

for(k=0;k<n;k++)

pro *= (1+sin((k+1)*x)/fact(k+1)); //вычисление ряда

cout<<"x="<<x<<" "<<"n="<<n<<endl; //эхо-вывод на экран

cout<<"ryad ="<<pro<<endl;

ofstream ptk("k116.txt"); //объявление потока вывода

if(ptk==0)cout<<"error otkr faila"<<endl; //проверка открытия файла

ptk<<"x="<<x<<" "<<"n="<<n<<endl; //эхо-вывод в файл

ptk<<"ryad ="<<pro<<endl;

getch();

}

Тест: вводим x=1 n=3

Получаем: 2.7417

Задача № 555

Треугольник Паскаля называется числовой треугольник

                                1                             

                             1     1                          

                          1     2     1                       

                       1     3     3     1                    

                    1     4     6     4     1                 

                 1     5    10    10     5     1              

              1     6    15    20    15     6     1           

           1     7    21    35    35    21     7     1        

        1     8    28    56    70    56    28     8     1     

     1     9    36    84   126   126    84    36     9     1 

…………………………………………………….

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

Дано:n

Получить: n строк треугольника Паскаля

Алгоритм:

1)      Создаем массив (2n+1)хn, заполняем первую строчку нулями, кроме n+1ой позиции, куда ставим 1

2)      Первый и последний столбец заполняем нулями.

3)      Все оставшиеся позиции заполняем следующим образом: MasA[i][j]=MasA[i-1][j-1]+MasA[i-1][j+1]

4)      Выводим на экран массив, только заменяем нули пробелами.

#include <vcl.h> // Я не знаю что это означает, оно автоматически задается в Builder6

#pragma hdrstop // Я не знаю что это означает, оно автоматически задается в Builder6

#pragma argsused // Я не знаю что это означает, оно автоматически задается в Builder6

#include<iostream.h>

#include<fstream.h>

#include<conio.h>

#include<iomanip.h>

void main()

{

int i,j;

int n;

int MasA[101][101];

cout<<"vvedite 0<n<=50"<<endl; // запрос, ввод и проверка n.

cin>>n;

while(n>50||n==0||n<0){

cout<<"Error! 0<n<=50"<<endl;

cout<<"vvedite 0<n<=50"<<endl;

cin>>n;}               

for(i=0;i<2*n+1;i++){ // Пунт 1.

  if(i==n)

    MasA[0][i]=1;

  else MasA[0][i]=0;

}

for(i=0;i<n;i++){ //Пункт 2.

  MasA[i][0]=0;

  MasA[i][2*n]=0;

}

 

for(i=1;i<n;i++) //Пункт 3.

  for(j=1;j<2*n;j++)

    MasA[i][j]=MasA[i-1][j-1]+MasA[i-1][j+1];

 

for(i=0;i<n;i++){ // Пункт 4.

    for(j=0;j<2*n+1;j++){

      if(MasA[i][j]==0)

        cout<<setw(3)<<" "; // setw - форматирование данных,

      else

        cout<<setw(3)<<MasA[i][j];

    }

    cout<<endl;

}

ofstream ptk("k555.txt"); // Объявление потока вывода в файл

if(ptk==0)cout<<"error otkr faila"<<endl;

for(i=0;i<n;i++){ // Эхо вывод в файл.

    for(j=0;j<2*n+1;j++){

      if(MasA[i][j]==0)

        ptk<<setw(3)<<" ";

      else

        ptk<<setw(3)<<MasA[i][j];

    }

    ptk<<endl;

}

getch();

}

 

 

 

Тест:

                                1                             

                             1     1                          

                          1     2     1                       

                       1     3     3     1                    

                    1     4     6     4     1                 

                 1     5    10    10     5     1              

              1     6    15    20    15     6     1           

           1     7    21    35    35    21     7     1        

        1     8    28    56    70    56    28     8     1     

     1     9    36    84   126   126    84    36     9     1  

Задача №684

В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент, Получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы какой-нибудь строки и столбца, на пересечении которых расположен элемент с найденным значением

Алгоритм:

1)      Задаем массив

2)      Запрашиваем и вводим n

3)      Вводим первый массив

4)      Находим максимальное число в массиве

5)      Записываем второй массив n-1xn-1

6)      Выводим оба массива

#include <vcl.h> // Я не знаю что это означает, оно автоматически задается в Builder6

#pragma hdrstop // Я не знаю что это означает, оно автоматически задается в Builder6

#pragma argsused // Я не знаю что это означает, оно автоматически задается в Builder6

#include<iostream.h>

#include<fstream.h>

#include<conio.h>

#include<iomanip.h>

void main()

{

int n;

int i,j;

int i0,j0;

double masA[50][50]; //заданный массив nxn

double masB[49][49]; //получаемый из первого массив

double max;

 

cout<<"vvedite 0<n<=50"<<endl; // запрос, ввод и проверка n.

cin>>n;

while(n>50||n==0||n<0){

cout<<"Error! 0<n<=50"<<endl;

cout<<"vvedite 0<n<=50"<<endl;

Информация о работе Разработка программ на С++ и в системе MathCAD