Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

примеры программ на СИ

.docx
Скачиваний:
106
Добавлен:
11.06.2015
Размер:
63.6 Кб
Скачать

1. ФУНКЦИЯ ПЕРЕВОДА ЧИСЕЛ (2)  2. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ И ФУНКЦИИ РАЗЛИЧНОЙ СЛОЖНОСТИ (4)  3. ФУНКЦИЯ НАХОЖДЕНИЯ КОЛИЧЕСТВА МАКСИМАЛЬНЫХ ЭЛ. В МАССИВЕ (1)  4. ВЫЧИСЛЕНИЕ ЧИСЕЛ ФИБОНАЧЧИ (2)  5. СОЗДАНИЕ ОТСОРТИРОВАННОГО МАССИВА ИЗ ДВУХ НЕ ОТСОРТИРОВАНЫХ (3)  6. ПРОГРАММА ДЛЯ ОТКРЫТИЯ ТЕКСТОВЫХ ФАЙЛОВ В С++ (1)  7. ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ (ИЗ ИДЗ) (2)  8. СОРТИРОВКА "ПУЗЫРЬКОМ" (1)  9. ОДНОМЕРНЫЙ МАССИВ (ИЗ ИДЗ) (1)  10. МАТРИЦА ОБЫКНОВЕННАЯ (C ВЫВОДОМ НОМЕРОВ СТРОК С МАХ ЭЛЕМЕНТОМ) (1)  11. СОРТИРОВКА ОДНОМЕРНОГО МАССИВА (1)  12. ДЕМОНИЧЕСКАЯ МАТРИЦА С СОРТИРОВКОЙ (1)  12. ДЕМОНИЧЕСКАЯ МАТРИЦА (КЛАССИЧЕСКАЯ ОТ ВИНОГРАДОВОЙ) (1) 

13. БАЗОВАЯ ПРОГРАММА ПОСТРОЕНИЯ ДЕРЕВА (1)  14. ПРОГРАММА НАХОЖДЕНИЯ СУММЫ ОТРИЦАТЕЛЬНЫХ ЭЛЕМЕНТОВ В УЗЛАХ, КОЛИЧЕСТВО ОТРИЦАТЕЛЬНЫХ, МАКСИМАЛЬНЫЙ ЭЛЕМЕНТ (1)

15. Построить идеально сбалансированное дерево. Напечатать. Определить высоту дерева.  В скобках указано количество прог на заданную тему.

 

WolfClan

Дата: Среда, 22.04.2009, 09:21 | Сообщение # 2

Группа: Удаленные

ФУНКЦИЯ ПЕРЕВОДА ЧИСЕЛ  Напишите функцию перевода р-ричного числа в десятичное.

Code

#include<conio.h>  #include<stdio.h>  int ch[] = {2,5,4};  int sys = 16;  int n = sizeof(ch)/sizeof(int);  int i, j, rez = 0, sys_temp;  void main()  {  clrscr();  sys_temp = 1;  j = 0;  for (i=n-1;i>=0;i--)  {  if (j>0)  sys_temp *= sys;  rez += ch[i] * sys_temp;  j++;  }  printf("\n%d",rez);  getch();  }  _____  Напишите функцию перевода 10-тичного числа в р-ричное  #include<stdio.h>  #include<conio.h>  #include<string.h>  #define TOP© (c<10?c+'0':c-10+'A')  void reverse(char*s)  {  reverse(s);  printf("%s",s);  }  void main()  {  clrscr();  unsigned long chislo;  unsigned sys;  int i;  char s[50];  printf("Enter count:");  scanf("%lu",&chislo);  printf("Enter system:");  scanf("%u",&sys);  if(sys!=0)  {  for (i=0;chislo>0;chislo/=sys)  s[i++]=TOP(chislo%sys);  s[i]='\0';  for (i=strlen(s)-1;i>=0;i--)  printf("%c",s[i]);  printf("\n");  }  getch();  }

 

WolfClan

Дата: Среда, 22.04.2009, 09:24 | Сообщение # 3

Группа: Удаленные

АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ И ФУНКЦИИ РАЗЛИЧНОЙ СЛОЖНОСТИ

Напишите функцию сложения двух простых дробей a/b и c/d. В результате должна получаться правильная несократимая дробь или смешанное число.

Code

# include <stdio.h>  const a=3,b=5,c=7,d=13;  int ch,zn,cel;  void sokr(int &x,int &y)  { int max=(x<y)?y:x;  for (int i=2;i<=max;i++)  if ((x%i==0)&(y%i==0))  {  x/=i;  y/=i;  max=(x<y)?y:x;  i=2;  }  }  void main()  {  if (b==d) {ch=a+c; zn=b;}  else {ch=a*d+b*c; zn=b*d;}  cel=ch/zn;  ch-=cel*zn;  sokr(ch,zn);  printf("\n%d %d/%d",cel,ch,zn);  }

_____  Напишите функцию разложения натурального числа на простые множители

Code

# include <stdio.h>  void main()  {  const N=15120;  long int n=N;  int mas[10];  int kol=0;  for (int i=2;i<=n;)  {  if ((n%i)==0)  {  mas[kol]=i;  kol++;  while ((n%i)==0) n/=i;  }  else i++;  }  }

_____  Напишите функцию поиска количества максимальных элементов в массиве

Code

# include <stdio.h>  # include <stdlib.h>  const n=10;  int mas[n];  int max,kol;  int poisk(int a[])  { int k=1;  max=a[0];  for (int i=0;i<n;i++)  if (a[i]>max) { max=a[i]; k=1;}  else if (a[i]==max) k++;  return k;  }  void main()  {  randomize();  for (int i=0;i<n;i++)  mas[i]=5+random(10);  kol=poisk(mas);  }

_____  Найти все простые числа из интервала 2..N ( N<=80000).

Code

#include<stdio.h>  #include<conio.h>  char mask[] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};  void main()  {  clrscr();  const long MAX=80000;  char newMAX[MAX/8];  for(long i=0;i<MAX/8;i++)  newMAX[i]=0xFF;  for(i=2;i<=MAX/2;i++)  if(newMAX[i/8] & mask[i%8])  {  long d=2*i;  for(;d<MAX;d+=i)  newMAX[d/8] &= ~mask[d%8];  }  for(i=2;i<MAX;i++)  {  if(newMAX[i/8] & mask[i%8])  {  printf("%8lu",i);  if (wherey() == 25)  {  getch();  clrscr();  }  }  }  getch();  }

 

WolfClan

Дата: Среда, 22.04.2009, 09:49 | Сообщение # 4

Группа: Удаленные

ФУНКЦИЯ НАХОЖДЕНИЯ КОЛИЧЕСТВА МАКСИМАЛЬНЫХ ЭЛ. В МАССИВЕ

Code

# include <stdio.h>  # include <stdlib.h>  const n=10;  int mas[n];  int max,kol;  int poisk(int a[])  { int k=1;  max=a[0];  for (int i=0;i<n;i++)  if (a[i]>max) { max=a[i]; k=1;}  else if (a[i]==max) k++;  return k;  }  void main()  {  randomize();  for (int i=0;i<n;i++)  mas[i]=5+random(10);  kol=poisk(mas);  }

 

WolfClan

Дата: Среда, 22.04.2009, 09:51 | Сообщение # 5

Группа: Удаленные

ВЫЧИСЛЕНИЕ ЧИСЕЛ ФИБОНАЧЧИ

Предложите два варианта функции вычисления суммы первых n чисел Фибоначчи.

Code

# include <stdio.h>  int fib(int x)  {  if ((x==1)|(x==2)) return 1;  else return (fib(x-1)+fib(x-2));  }  void main()  { int sum=0;  const n=7;  for (int i=1;i<=n;i++)  sum+=fib(i);  printf("%d",sum);  } 

_____

Предложите два варианта функции вычисления n- го числа фибоначчи

Code

# include <stdio.h>  int fib(int x)  {  if ((x==1)|(x==2)) return 1;  else return (fib(x-1)+fib(x-2));  }  void main()  { const n=20;  printf("\n%d",fib(n));  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:08 | Сообщение # 6

Группа: Удаленные

СОЗДАНИЕ ОТСОРТИРОВАННОГО МАССИВА ИЗ ДВУХ НЕ ОТСОРТИРОВАНЫХ

Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по убыванию. Разработать программу для слияния этих массивов в отсортированный по возрастанию массив С.

Code

# include <stdio.h>  # include <stdlib.h>  const N=10,M=10;  int a[N],b[M],c[N+M];  void main()  {  randomize();  a[0]=-20;  b[0]= 20;  for (int i=1;i<N;i++)  a[i]=a[i-1]+random(10);  for (i=1;i<M;i++)  b[i]=b[i-1]-random(10);  int x=0,y=M-1;  i=0;  while (!c[N+M-1])  {  if (((a[x]>=b[y])|(x>N-1))&(y<=M-1))  {  c[i]=b[y];  i++;  y--;  }  else if (((a[x]<=b[y])|(y<0))&(x>=0))  {  c[i]=a[x];  i++;  x++;  }  }  } 

_____

Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по убыванию. Разработать программу для слияния этих массивов в отсортированный по убыванию массив С, не содержащий одинаковых элементов.

Code

# include <stdio.h>  # include <stdlib.h>  const N=10,M=10;  int a[N],b[M],c[N+M];  void main()  {  randomize();  a[0]=-5;  b[0]= 5;  for (int i=1;i<N;i++)  a[i]=a[i-1]+random(3);  for (i=1;i<M;i++)  b[i]=b[i-1]-random(3);  int x=N-1,y=0;  i=0;  while ((x>=0)|(y<M))  {  if (((a[x]>=b[y])|(y>M-1))&(x>=0))  {  if (c[i-1]!=a[x]) { c[i]=a[x]; i++;}  x--;  }

_____

Даны два массива. Массив А состоит из N элементов , массив В состоит из М элементов. Оба массива отсортированы по убыванию. Разработать программу для слияния этих массивов в отсортированный по неубыванию массив С.

Code

# include <stdio.h>  # include <stdlib.h>  const N=10,M=10;  int a[N],b[M],c[N+M];  void main()  {  randomize();  a[0]=-5;  b[0]=-5;  for (int i=1;i<N;i++)  {  a[i]=a[i-1]-random(3);  b[i]=b[i-1]-random(3);  }  int x=M-1,y=N-1;  i=0;  while ((x>=0)|(y>=0))  {  if (((a[x]<=b[y])|(y<0))&(x>=0))  {  c[i]=a[x];  i++;  x--;  }  else if (((a[x]>=b[y])|(x<0))&(y>=0))  {  c[i]=b[y];  i++;  y--;  }  }  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:09 | Сообщение # 7

Группа: Удаленные

ПРОГРАММА ДЛЯ ОТКРЫТИЯ ТЕКСТОВЫХ ФАЙЛОВ В С++

Прога выводит содержимое из выбранного txt файла (вроде ничего не напутал)

Code

#include<stdio.h>  #include<string.h>  main()  {  FILE*f= fopen("t.txt","r"); \\ процедура открывающая файл с именем t.txt, r означает чтение (изменять не будем)  char s[100]; \\ выделяем в процедуре строку в 100 символов  int k=0;  while (!feof (f)){ \\ гм. проверяем, в какой строке количество символов не равно 0, (длинна строки не 0),  fgets(s,100,f);  if (strlen(s)==0) {\\ если 0 то к следущей  k++;}  ;  }  fclose(f); \\ закрываем файл  printf("k=%i", k); \\ выводим строку с символами из файла  printf("\n");  return 0;  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:25 | Сообщение # 8

Группа: Удаленные

ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ (ИЗ ИДЗ)

Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач до Хкон с шагом dX.  F = ax2 + b +c при a < 0 и с № 0  F = -a/(x-c) при a > 0 и c = 0  F = a(x+c) во всех остальных случаях,  где a, b и c – действительные числа.  Значения a, b, c, Хнач, Хкон, dX – ввести с клавиатуры.

Прога - 

Code

#include <conio.h>  #include <iostream.h>  void main ()  {  float a,b,c;  float Xs, Xe,dx;  float F;  cout<<"a= ";  cin>>a;  cout<<"b= ";  cin>>b;  cout<<"c= ";  cin>>c;  cout<<endl;  cout<<"Xs= ";  cin>>Xs;  cout<<"Xe= ";  cin>>Xe;  cout<<"dx= ";  cin>>dx;  cout<<endl;  if (Xs<=Xe&&dx!=0)  {  for(float x=Xs; x<=Xs; x+=dx)  {  if (a<0&&c!=0)  {  F=a*(x*x)+b+c;  cout<<"x= "<<x<<"F= "<<F<<endl;  }  else  {  if (a>0&&c==0)  {  F=-a/(x+c);  cout<<"x= "<<x<<"F= "<<F<<endl;  }  else  {  F=a*(x+c);  cout<<"x= "<<x<<"F= "<<F<<endl;  }  }  }  getch ();  }  }

Вычислить и вывести на экран в виде  таблицы значения функции F на интервале  от Хнач до Хкон с шагом dX.  F = ax2 + b2x при a < 0 и x != 0  F = x – a/(x - c) при a > 0 и x = 0  F = 1 + x/c во всех остальных случаях,  где a, b и c – действительные числа.  Значения a, b, c, Хнач, Хкон, dX – ввести с клавиатуры.*/

Code

#include <iostream.h>  #include <conio.h>  void main()  {  clrscr();  float a,b,c,x,xH,xk,dx,F;  cout << "BBeDuTe 3Ha4eHu9l nepeMeHHbIx: a b c xH xk dx\n";  cin>>a>>b>>c>>xH>>xk>>dx;  cout<<"\n";  cout<<"x\t";  cout<<"F\n";  for (x = xH ; x <= xk ; x += dx)  {  cout << x;  cout << "\t";  if(a < 0 && x != 0)  {  F = a * x * 2 + b * 2 * x;  cout << F;  cout << "\n";  }  else if(a > 0 && x == 0)  {  if ((x - c) == 0)  {  cout << "XXX - Ha HyJlb DeJluTb HeJlb39|";  cout << "\n";  }  else  {  F = x - a / (x - c);  cout << F;  cout << "\n";  }  }  else  {  if (c == 0)  {  cout << "XXX - Ha HyJlb DeJluTb HeJlb39|";  cout << "\n";  }  else  {  F = 1 + x / c;  cout << F;  cout << "\n";  }  }  }  getch();  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:26 | Сообщение # 9

Группа: Удаленные

СОРТИРОВКА "ПУЗЫРЬКОМ"

Code

#include <conio.h>  #include <iostream.h>  #include <iomanip.h>  const int n=10, k=15;  void input (float w[ ], int p, int z)  {cout<<"/n vvedite" <<p<< "element /n";  for (int i=0; i<p; i++)  cin>>w[i];  if (w[i]>w[i+1])  {z=w[i];w[i]=w[i+1];w[i+1]=z;}  }  void output (float w[], int p, char title[])  {cout<<title;  for (int i=0; i<p; i++)  cout<<w[i]<<" ";  cout<<endl;  }  getch ();

 

WolfClan

Дата: Среда, 22.04.2009, 10:27 | Сообщение # 10

Группа: Удаленные

ОДНОМЕРНЫЙ МАССИВ (ИЗ ИДЗ)

Задание - В одномерном массиве, состоящем из N вещественных элементов, вычислить:  произведение элементов массива с четными номерами;  сумму элементов массива, расположенных между первым и последним нулевыми элементами.  Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, равные нулю, считать положительными).

Прога - 

Code

#include <conio.h>  #include <iostream.h>  #include <iomanip.h>  const int n=10, k=15;  void input (float w[ ], int p, int zfloat, proizv = 0)  {  {cout<<"/n vvedite" <<p<< "element /n";  for (int i=0; i<p; i++)  cin>>w[i];  if (w[i]>w[i+1])  {z=w[i];w[i]=w[i+1];w[i+1]=z;}  }  for (i=0; i<p; i++)  {  if (a[i]%2==0)  {  if (proizv==0){proizv = 1;  }  proizv*=a[i];  }  }  if (proizv!=0)  {  cout<<"Proizvedenie chetnih chisel: "<<proizv<<endl;  }  else  cout<<"Chetnih chisel net!"<<endl;  for (int i=0; i<p; i++)  for(i=0; i<m; i++)  {int summ=0;  if (a[i]==0)  summ++;  if (summ==0){summ = 1;  summ+=a[i];  }  if (summ!=0)  {  cout<<"Summa pervih i poslednih с 0: "<<proizv<<endl;  }  else  cout<<"Net nulevih elementov!"<<endl;  void output (float w[], int p, char title[])  {cout<<title;  for (int i=0; i<p; i++)  cout<<w[i]<<" ";  cout<<endl;  }  getch ();

 

WolfClan

Дата: Среда, 22.04.2009, 10:29 | Сообщение # 11

Группа: Удаленные

МАТРИЦА ОБЫКНОВЕННАЯ (C ВЫВОДОМ НОМЕРОВ СТРОК С МАХ ЭЛЕМЕНТОМ) 

Code

#include <iostream.h>  #include <conio.h>  #include <iomanip.h>  const int n=5, m=6;  void input(float w[n][m])  {  cout<<"vv"<<n<<" stroka po "<<m<<" yl\n";  int i,j;  for (i=0; i<n; i++)  for (int j=0; j<m; j++)  cin>>w[i][j];  }  void output (float w[n][m],char title[])  {  cout<<title;  int i,j;  for (i=0; i<n; i++)  {  for (j=0; j<m; j++)  cout<<setw(4)<<w[i][j];  cout<<endl;  }}  void make (float w[n][m])  {  int i,j,Nmax;  float max;  for(i=0; i<n; i++)  {  max=-1e+38;  for(j=0; j<m; j++)  if(w[i][j]>max)  {  max=w[i][j];  Nmax=j;  }  cout<<"\n Stroka N"<<i<<" max="<<max<<" Nmax="<<Nmax<<endl;  }  }  void main()  {

 

WolfClan

Дата: Среда, 22.04.2009, 10:30 | Сообщение # 12

Группа: Удаленные

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

Code

#include <iostream.h>  #include <conio.h>  const int n=10;  void input(float w[], int p);  void output(float w[], int p,char title[]);  void sort(float w[], int p);  void main()  {  float A[10];  clrscr();  input (A,n);  output (A,n,"ishodnii massiv A \n");  sort(A,n);  output (A,n,"Izmenennii massiv A \n");  getch ();  }  void input(float w[],int p)  {  cout<<"VV massiv\n";  for (int i=0;i<p; i++)  cin>>w[i];  }  void output(float w[],int p,char title[])  {  cout<<"\n\n"<<title;  for (int i=0;i<p; i++)  cout<<w[i]<<" ";  cout<<endl;  }  void sort(float w[], int p)  {  int i, j, Nmin;  float Z;  for(i=0; i<p-1; i++)  {  Nmin=i;  for(j=i+1; j<p; j++)  if(w[j]<w[Nmin]) Nmin=j;  Z=w[i]; w[i]=w[Nmin]; w[Nmin]=Z;  }  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:31 | Сообщение # 13

Группа: Удаленные

ДЕМОНИЧЕСКАЯ МАТРИЦА С СОРТИРОВКОЙ

Code

#include<iostream.h>  #include<conio.h>  float* input (int p)  {float* w = new float [p];  cout<<"\n vv "<<p<<" el\n";  for (int i=0; i<p; i++)  cin>>w[i];  return w;  }  void output (float* w, int p,char title[])  {  cout<<title;  for (int i=0; i<p; i++)  cout<<" "<<w[i];  }  void sort(float w[], int p)  {  int i, j, Nmin;  float Z;  for(i=0; i<p-1; i++)  {  Nmin=i;  for(j=i+1; j<p; j++)  if(w[j]<w[Nmin]) Nmin=j;  Z=w[i]; w[i]=w[Nmin]; w[Nmin]=Z;;}}  void main ()  {int n,m;  clrscr ();  cout<<"\n vv n,m\n";  cin>>n>>m;  float * A=input (n);  float * B=input (m);  sort (A,n);  sort (B,m);  output (A,n, "\n Izm. A \n");  output (B,m, "\n IZM. B \m");  getch ();  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:33 | Сообщение # 14

Группа: Удаленные

ДЕМОНИЧЕСКАЯ МАТРИЦА (КЛАССИЧЕСКАЯ ОТ ВИНОГРАДОВОЙ) 

Code

#include<iostream.h>  #include<conio.h>  float* input (int p)  {float* w = new float [p];  cout<<"\n vv "<<p<<" el\n";  for (int i=0; i<p; i++)  cin>>w[i];  return w;  }  void output (float* w, int p,char title[])  {  cout<<title;  for (int i=0; i<p; i++)  cout<<" "<<w[i];  }  void perevorot (float* w, int p)  {float z;  for (int i=0; i<p/2; i++)  {z=w[i]; w[i]=w[p-i-1];  w[p-i-1]=z;}}  void main ()  {int n,m;  cout<<"\n vv n,m\n";  cin>>n>>m;  float * A=input (n);  float * B=input (m);  perevorot (A,n);  perevorot (B,m);  output (A,n, "\n Izm. A \n");  output (B,m, "\n IZM. B \m");  getch ();  }

 

WolfClan

Дата: Понедельник, 22.03.2010, 11:56 | Сообщение # 15

Группа: Удаленные

БАЗОВАЯ ПРОГРАММА ПОСТРОЕНИЯ ДЕРЕВА

Code

#include <iostream.h>  #include <conio.h>  struct node {  int key;  node *left, *right;  }  node * buildTree (int n) [color=gray][i]// строим дерево, задаем значения корня и узлов[/i][/color]  {if(n==0) return 0;  else  {node *t=new node;  cout<<"\n Vvedite ocherednoe chislo \n";  cin>>t->key;  int nl=n\2, nr=n-1-nl;  t->left=buildTree(nl);  t->right=buildTree(nr);  return t;  }  }  void Output (node *t, int k) [color=gray][i]// печатаем дерево на экран[/i][/color]  {if (t!=0)  {output (t->right, k+7) [color=gray][i]// k+7 - вместо 7, можно задать любое значение, это расстояние между узлами на экране.[/i][/color]  for(int i=0; i<k; i++)  cout<<' ';  cout<<t->key<<"\n\n";  output(t->left; k+7);  }  }  void main ()  {int n;  cout<<"\n Vvedite n \n";  cin>>n;  node*T=buildTree (n);  cout<<"\n Ishodnoe derevo \n";  Output (T,0);  getch ();  }

ФУНКЦИЯ ПЕРЕВОДА ЧИСЕЛ  Напишите функцию перевода р-ричного числа в десятичное.

Code

#include<conio.h>  #include<stdio.h>  int ch[] = {2,5,4};  int sys = 16;  int n = sizeof(ch)/sizeof(int);  int i, j, rez = 0, sys_temp;  void main()  {  clrscr();  sys_temp = 1;  j = 0;  for (i=n-1;i>=0;i--)  {  if (j>0)  sys_temp *= sys;  rez += ch[i] * sys_temp;  j++;  }  printf("\n%d",rez);  getch();  }  _____  Напишите функцию перевода 10-тичного числа в р-ричное  #include<stdio.h>  #include<conio.h>  #include<string.h>  #define TOP© (c<10?c+'0':c-10+'A')  void reverse(char*s)  {  reverse(s);  printf("%s",s);  }  void main()  {  clrscr();  unsigned long chislo;  unsigned sys;  int i;  char s[50];  printf("Enter count:");  scanf("%lu",&chislo);  printf("Enter system:");  scanf("%u",&sys);  if(sys!=0)  {  for (i=0;chislo>0;chislo/=sys)  s[i++]=TOP(chislo%sys);  s[i]='\0';  for (i=strlen(s)-1;i>=0;i--)  printf("%c",s[i]);  printf("\n");  }  getch();  }

 

WolfClan

Дата: Среда, 22.04.2009, 09:24 | Сообщение # 3

Группа: Удаленные

АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ И ФУНКЦИИ РАЗЛИЧНОЙ СЛОЖНОСТИ

Напишите функцию сложения двух простых дробей a/b и c/d. В результате должна получаться правильная несократимая дробь или смешанное число.

Code

# include <stdio.h>  const a=3,b=5,c=7,d=13;  int ch,zn,cel;  void sokr(int &x,int &y)  { int max=(x<y)?y:x;  for (int i=2;i<=max;i++)  if ((x%i==0)&(y%i==0))  {  x/=i;  y/=i;  max=(x<y)?y:x;  i=2;  }  }  void main()  {  if (b==d) {ch=a+c; zn=b;}  else {ch=a*d+b*c; zn=b*d;}  cel=ch/zn;  ch-=cel*zn;  sokr(ch,zn);  printf("\n%d %d/%d",cel,ch,zn);  }

_____  Напишите функцию разложения натурального числа на простые множители

Code

# include <stdio.h>  void main()  {  const N=15120;  long int n=N;  int mas[10];  int kol=0;  for (int i=2;i<=n;)  {  if ((n%i)==0)  {  mas[kol]=i;  kol++;  while ((n%i)==0) n/=i;  }  else i++;  }  }

_____  Напишите функцию поиска количества максимальных элементов в массиве

Code

# include <stdio.h>  # include <stdlib.h>  const n=10;  int mas[n];  int max,kol;  int poisk(int a[])  { int k=1;  max=a[0];  for (int i=0;i<n;i++)  if (a[i]>max) { max=a[i]; k=1;}  else if (a[i]==max) k++;  return k;  }  void main()  {  randomize();  for (int i=0;i<n;i++)  mas[i]=5+random(10);  kol=poisk(mas);  }

_____  Найти все простые числа из интервала 2..N ( N<=80000).

Code

#include<stdio.h>  #include<conio.h>  char mask[] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};  void main()  {  clrscr();  const long MAX=80000;  char newMAX[MAX/8];  for(long i=0;i<MAX/8;i++)  newMAX[i]=0xFF;  for(i=2;i<=MAX/2;i++)  if(newMAX[i/8] & mask[i%8])  {  long d=2*i;  for(;d<MAX;d+=i)  newMAX[d/8] &= ~mask[d%8];  }  for(i=2;i<MAX;i++)  {  if(newMAX[i/8] & mask[i%8])  {  printf("%8lu",i);  if (wherey() == 25)  {  getch();  clrscr();  }  }  }  getch();  }

 

WolfClan

Дата: Среда, 22.04.2009, 09:49 | Сообщение # 4

Группа: Удаленные

ФУНКЦИЯ НАХОЖДЕНИЯ КОЛИЧЕСТВА МАКСИМАЛЬНЫХ ЭЛ. В МАССИВЕ

Code

# include <stdio.h>  # include <stdlib.h>  const n=10;  int mas[n];  int max,kol;  int poisk(int a[])  { int k=1;  max=a[0];  for (int i=0;i<n;i++)  if (a[i]>max) { max=a[i]; k=1;}  else if (a[i]==max) k++;  return k;  }  void main()  {  randomize();  for (int i=0;i<n;i++)  mas[i]=5+random(10);  kol=poisk(mas);  }

 

WolfClan

Дата: Среда, 22.04.2009, 09:51 | Сообщение # 5

Группа: Удаленные

ВЫЧИСЛЕНИЕ ЧИСЕЛ ФИБОНАЧЧИ

Предложите два варианта функции вычисления суммы первых n чисел Фибоначчи.

Code

# include <stdio.h>  int fib(int x)  {  if ((x==1)|(x==2)) return 1;  else return (fib(x-1)+fib(x-2));  }  void main()  { int sum=0;  const n=7;  for (int i=1;i<=n;i++)  sum+=fib(i);  printf("%d",sum);  } 

_____

Предложите два варианта функции вычисления n- го числа фибоначчи

Code

# include <stdio.h>  int fib(int x)  {  if ((x==1)|(x==2)) return 1;  else return (fib(x-1)+fib(x-2));  }  void main()  { const n=20;  printf("\n%d",fib(n));  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:08 | Сообщение # 6

Группа: Удаленные

СОЗДАНИЕ ОТСОРТИРОВАННОГО МАССИВА ИЗ ДВУХ НЕ ОТСОРТИРОВАНЫХ

Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по убыванию. Разработать программу для слияния этих массивов в отсортированный по возрастанию массив С.

Code

# include <stdio.h>  # include <stdlib.h>  const N=10,M=10;  int a[N],b[M],c[N+M];  void main()  {  randomize();  a[0]=-20;  b[0]= 20;  for (int i=1;i<N;i++)  a[i]=a[i-1]+random(10);  for (i=1;i<M;i++)  b[i]=b[i-1]-random(10);  int x=0,y=M-1;  i=0;  while (!c[N+M-1])  {  if (((a[x]>=b[y])|(x>N-1))&(y<=M-1))  {  c[i]=b[y];  i++;  y--;  }  else if (((a[x]<=b[y])|(y<0))&(x>=0))  {  c[i]=a[x];  i++;  x++;  }  }  } 

_____

Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по убыванию. Разработать программу для слияния этих массивов в отсортированный по убыванию массив С, не содержащий одинаковых элементов.

Code

# include <stdio.h>  # include <stdlib.h>  const N=10,M=10;  int a[N],b[M],c[N+M];  void main()  {  randomize();  a[0]=-5;  b[0]= 5;  for (int i=1;i<N;i++)  a[i]=a[i-1]+random(3);  for (i=1;i<M;i++)  b[i]=b[i-1]-random(3);  int x=N-1,y=0;  i=0;  while ((x>=0)|(y<M))  {  if (((a[x]>=b[y])|(y>M-1))&(x>=0))  {  if (c[i-1]!=a[x]) { c[i]=a[x]; i++;}  x--;  }

_____

Даны два массива. Массив А состоит из N элементов , массив В состоит из М элементов. Оба массива отсортированы по убыванию. Разработать программу для слияния этих массивов в отсортированный по неубыванию массив С.

Code

# include <stdio.h>  # include <stdlib.h>  const N=10,M=10;  int a[N],b[M],c[N+M];  void main()  {  randomize();  a[0]=-5;  b[0]=-5;  for (int i=1;i<N;i++)  {  a[i]=a[i-1]-random(3);  b[i]=b[i-1]-random(3);  }  int x=M-1,y=N-1;  i=0;  while ((x>=0)|(y>=0))  {  if (((a[x]<=b[y])|(y<0))&(x>=0))  {  c[i]=a[x];  i++;  x--;  }  else if (((a[x]>=b[y])|(x<0))&(y>=0))  {  c[i]=b[y];  i++;  y--;  }  }  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:09 | Сообщение # 7

Группа: Удаленные

ПРОГРАММА ДЛЯ ОТКРЫТИЯ ТЕКСТОВЫХ ФАЙЛОВ В С++

Прога выводит содержимое из выбранного txt файла (вроде ничего не напутал)

Code

#include<stdio.h>  #include<string.h>  main()  {  FILE*f= fopen("t.txt","r"); \\ процедура открывающая файл с именем t.txt, r означает чтение (изменять не будем)  char s[100]; \\ выделяем в процедуре строку в 100 символов  int k=0;  while (!feof (f)){ \\ гм. проверяем, в какой строке количество символов не равно 0, (длинна строки не 0),  fgets(s,100,f);  if (strlen(s)==0) {\\ если 0 то к следущей  k++;}  ;  }  fclose(f); \\ закрываем файл  printf("k=%i", k); \\ выводим строку с символами из файла  printf("\n");  return 0;  }

 

WolfClan

Дата: Среда, 22.04.2009, 10:25 | Сообщение # 8

Группа: Удаленные

ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ (ИЗ ИДЗ)

Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач до Хкон с шагом dX.  F = ax2 + b +c при a < 0 и с № 0  F = -a/(x-c) при a > 0 и c = 0  F = a(x+c) во всех остальных случаях,  где a, b и c – действительные числа.  Значения a, b, c, Хнач, Хкон, dX – ввести с клавиатуры.

Прога - 

Code

#include <conio.h>  #include <iostream.h>  void main ()  {  float a,b,c;  float Xs, Xe,dx;  float F;  cout<<"a= ";  cin>>a;  cout<<"b= ";  cin>>b;  cout<<"c= ";  cin>>c;  cout<<endl;  cout<<"Xs= ";  cin>>Xs;  cout<<"Xe= ";  cin>>Xe;  cout<<"dx= ";  cin>>dx;  cout<<endl;  if (Xs<=Xe&&dx!=0)  {  for(float x=Xs; x<=Xs; x+=dx)  {  if (a<0&&c!=0)  {  F=a*(x*x)+b+c;  cout<<"x= "<<x<<"F= "<<F<<endl;  }  else  {  if (a>0&&c==0)  {  F=-a/(x+c);  cout<<"x= "<<x<<"F= "<<F<<endl;  }  else  {  F=a*(x+c);  cout<<"x= "<<x<<"F= "<<F<<endl;  }  }  }  getch ();  }  }

Вычислить и вывести на экран в виде  таблицы значения функции F на интервале  от Хнач до Хкон с шагом dX.  F = ax2 + b2x при a < 0 и x != 0  F = x – a/(x - c) при a > 0 и x = 0  F = 1 + x/c во всех остальных случаях,  где a, b и c – действительные числа.  Значения a, b, c, Хнач, Хкон, dX – ввести с клавиатуры.*/

Code

#include <iostream.h>  #include <conio.h>  void main()  {  clrscr();  float a,b,c,x,xH,xk,dx,F;  cout << "BBeDuTe 3Ha4eHu9l nepeMeHHbIx: a b c xH xk dx\n";  cin>>a>>b>>c>>xH>>xk>>dx;  cout<<"\n";  cout<<"x\t";  cout<<"F\n";  for (x = xH ; x <= xk ; x += dx)  {  cout << x;  cout << "\t";  if(a < 0 && x != 0)  {  F = a * x * 2 + b * 2 * x;  cout << F;  cout << "\n";  }  else if(a > 0 && x == 0)  {  if ((x - c) == 0)  {  cout << "XXX - Ha HyJlb DeJluTb HeJlb39|";  cout << "\n";  }  else  {  F = x - a / (x - c);  cout << F;  cout << "\n";  }  }  else  {  if (c == 0)  {  cout << "XXX - Ha HyJlb DeJluTb HeJlb39|";  cout << "\n";  }  else  {  F = 1 + x / c;  cout << F;  cout << "\n";  }  }  }  getch();  }