среда, 5 октября 2011 г.

умножение матриц (3Х3) [c, c++]

Задача:

Ввести две матрицы 3х3 и умножить их друг на друга

Код программы:


#include <stdio.h>
#include <conio.h>
#define N 3

void main()
{
 clrscr();
 int a[N][N];
 int b[N][N];
 int c[N][N];
 int i,j;
 int n,m;


// матрица 1

 printf("введите матрицу%ix%i\n",N,N);
 for (i=0; i<N; i++)
 {
  printf("элем %i-й строки:\n",i+1);
  for (j=0; j<N; j++)
  {
   scanf("%i", &a[i][j]);
  }
 }
 printf("\nПервая матрица\n");
 for(i=0; i<N; i++)
 {
  for(j=0; j<N; j++)
  {
   printf("%3i",a[i][j]);
  }
  printf("\n");
 }

// матрица 2

 printf("введите матрицу%ix%i\n",N,N);
 for (j=0; j<N; j++)
 {
  printf("элем %i-й строки:\n",j+1);
  for (i=0; i<N; i++)
  {
   scanf("%i", &b[j][i]);
  }
 }
 printf("\nВторая матрица\n");
 for(j=0; j<N; j++)
 {
  for(i=0; i<N; i++)
  {
   printf("%3i",b[j][i]);
  }
  printf("\n");
 }

// умножение матриц

 for (i=0; i<N; i++)
  for (j=0; j<N; j++)
   c[i][j]=0;

 printf("\nУмножение матриц\n");
 for(i=0;i<N; i++)
 {
  for(j=0; j<N; j++)
  {
   for(m=0; m<N; m++)
   {
    c[i][j]+=a[i][m]*b[m][j];
   }
  }
 }

 printf("\nИтоговая матрица\n");
 for(i=0; i<N; i++)
 {
  for(j=0; j<N; j++)
  {
   printf("%3i",c[i][j]);
  }
  printf("\n");
 }


getch();
}

Результат:



массив [c, c++]

Задача:


Написать программу которая меняет местами элементы массива (данные массива в обратном порядке)

Код программы:


#include <stdio.h>
#include <conio.h>
#define N 3

void main()
{
 clrscr();
 int a[N]; // массив
 int i;

 printf ("введите массив\n");

 for (i=0; i<N; i++)
  scanf ("%i",&a[i]);

 printf ("массив\n");
 for (i=0; i<N; i++)
  printf ("%i ",a[i]);

 printf ("\nмассив в обратном порядке\n");
 for (i=N-1; i>=0; i--)
  printf ("%i ",a[i]);
 getch();
}

Результат:



функция while [c, c++]

Задача:


НОД двух чисел

Код программы:

#include <stdio.h>
#include <conio.h>

void main()
{
 clrscr();
 int n1,n2;
 int nod;
 int r;

 printf ("введите 2 числа:\n");
 scanf  ("%i%i", &n1,&n2);

 while (n1&n2)
 { 
  r=n1%n2;
  n1=n2;
  n2=r;
 }
 nod=n2;
 printf("\nНОД=%i\n",nod);
 getch();
}

Результат:


массив [c, c++]

Задача:

Найти max элемент массива

Код программы:


#include <stdio.h>
#include <conio.h>
#define N 5

void main()
{
 clrscr();
 int a[N]; // массив
 int i, max;    // i-индекс,
// max-номер max элемента

 printf ("введите массив\n");

 for (i=0; i<N; i++)
  scanf  ("%i",&a[i]);
 max=0;

 for (i=1; i<N; i++)
  if(a[i]>a[max]) max=i;
 printf ("\nmax элемент масива: a[%i]=%i", max+1, a[max]);
 getch();
}

Результат:


вторник, 4 октября 2011 г.

Функции [c, c++]

Задача:


Найти решение 2^k + k^3

Код программы:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

float Stepen(float, int); 

void main()
{
 clrscr();
 int k;
 float r;

 printf ("2^k + k^3 = ?\n");
 printf ("Введите\nk=");
 scanf  ("%i", &k);

 r = Stepen(2, k) + Stepen((float) k, 3);
 printf("\n2^%i + %i^3 = %g",k, k, r);
 getch();
}

//функция

float Stepen(float a, int b)
{
 if(b == 0)
  return 1.0;

 int i;
 float r;
 r = 1;

 for(i = 0; i<abs(b); i++)
 {
  r = r*a;
 }

 if(b < 0)
  r = 1 / r;
  return r;
}


Результат:


Функции [c, c++]

Задача:


Найти: (2*n)!=?  и  2*n!=?

Код программы:



#include <stdio.h>
#include <conio.h>

int fun(int);

void main()
{
 clrscr();
 int p, n;

 printf ("Будем считать: (2*n)! и 2*n!\n");
 printf ("\nВведите n=");
 scanf  ("%i", &n);

 printf ("\n");
 p = fun(2*n);
 printf ("(2*n)! = %i\n", p);
 p = 2*fun(n);
 printf ("2*n! = %i\n", p);
 getch();
}

Результат:




Рекурсия [c, c++]

Задача:

Вывести на экран визуализацию рекурсии

Код программы:

#include <stdio.h>
#include <conio.h>

int fun(int);

void main()
{
 clrscr();
 fun(5);
 getch();
}

//функция

int fun(int x) 
{
 if(x == 1 || x == 0)
  return 1;
 else 
 {
  printf("fun: аргумент = %i; результат = %i;\n", x, (x*fun(x-1)));
  return x*fun(x-1);
 }
}

Результат:



понедельник, 3 октября 2011 г.

Пример функций [c, c++]

Задача:

Код программы:


#include <stdio.h>
#include <math.h>
#include <conio.h>

int fun(int);

void main()
{
 clrscr();
 int  n;
 float p;

 printf ("введите N=");
 scanf  ("%i", &n);

 if(n >= 5)
 {
  p = (fun(n)) + 4;
  p = pow(p, 3);
 }
 else
  p = sin(fun(n));

 printf("P = %f", p);
 getch();
}

// функция

int fun(int x)
{
 if(x == 1 || x == 0)
  return 1;
 else
  return x*fun(x-1);
}

Результат:


Функции [c, c++]

Задача:


Найти 2.7^k + (a+1)^-5

Код программы:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

float Stepen(float, int);

void main() 
{
 clrscr();
 int a, k;
 float r;
 

 printf ("введите k=");
 scanf  ("%i",&k);
 printf ("введите a=");
 scanf  ("%i",&a);

 r = Stepen(2.7, k) + Stepen((float) (a+1), -5);
 printf("\n2.7^k + (a+1)^-5 = %g", r);
 getch();
}

//функция!

float Stepen(float a, int b) 
{
 if(b == 0)
 return 1.0;
 
 int i;
 float r;
 r = 1;
 
 for(i = 0; i<abs(b); i++) 
  r = r*a;
 if(b < 0)
  r = 1 / r;
 return r;
}

Результат:


число отрицательное или положительное [c, c++]

Задача:

Написать программу, которая определяет число отрицательное или положительное оно.

Код программы:


#include <conio.h>
#include <stdio.h>
void main()

{
 clrscr();
 int n;

 printf ("введите число\nN=");
 scanf  ("%i", &n);

  if(n < 0)
   printf("\n%i - отрицательное", n);
   else
    printf("\n%i - положительное", n);
 getch();
}


Результат: