Набор готовых программ
| | |
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 (); }
|
|
| |
|