Нужна помощь! Дана таблица. Составить алгоритм, находящий в ней произведение всех элементов, значения которых больше 10 (обработка одномерного массива. Числа записаны в ячейках. Нужно взять 5 любых чисел.
То что предложил pcacer не подходит к тому что нужно(( Помогите тогда с другим заданием пожалуйста... Составить программу, в которой организованы следующие действия: сортировка массива слов по алфавиту; выборка из массива слов, начинающихся с гласных; выборка из массива слов, начинающихся с согласных. Эти действия оформлены в подпрограммах. Обеспечить пользователю возможность выбирать нужную ему подпрограмму через интерфейс управления.
Что-нибудь типа Code: #include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <string> #include <set> #include <clocale> const static char vowels[] = {'у','е','ы','а','о','э','я','и','ю','ё'}; std::set<char> vowel_list(vowels, vowels + sizeof(vowels)); void sort_array(std::vector<std::string> &vec) { std::sort(vec.begin(), vec.end()); } bool is_vowel_(std::string & s) { return vowel_list.find(s.c_str()[0]) == vowel_list.end(); } bool is_consonant_(std::string & s) { return !is_vowel_(s); } void get_vowel_words(std::vector<std::string> &vec) { std::vector<std::string> result; result.resize(vec.size()); std::remove_copy_if(vec.begin(), vec.end(), result.begin(), is_vowel_); vec = result; } void get_consonant_words(std::vector<std::string> &vec) { std::vector<std::string> result; result.resize(vec.size()); std::remove_copy_if(vec.begin(), vec.end(), result.begin(), is_consonant_); vec = result; } int main() { int cmd; std::vector<std::string> list, result; setlocale(LC_CTYPE, ".1251"); list.push_back(std::string("вася")); list.push_back(std::string("ашот")); list.push_back(std::string("равшан")); std::cout<<"Начальный массив:"<<std::endl; for(std::vector<std::string>::const_iterator it = list.begin(); it != list.end(); ++it) { std::cout<<'\t'<<(*it)<<std::endl; } std::cout<<std::endl <<"Действие:"<<std::endl <<"0 - отсортировать;"<<std::endl <<"1 - слова, начинающиеся на гласные;"<<std::endl <<"2 - --//-- на согласные"<<std::endl; std::cin>>cmd; switch(cmd) { case 0: sort_array(list); break; case 1: get_vowel_words(list); break; case 2: get_consonant_words(list); break; default: std::cout<<"Действие не определено"<<std::endl; return EXIT_FAILURE; } std::cout<<std::endl<<"Результирующий массив:"<<std::endl; for(std::vector<std::string>::const_iterator it = list.begin(); it != list.end(); ++it) { std::cout<<'\t'<<(*it)<<std::endl; } return EXIT_SUCCESS; } Компилировать не пробовал
нужно решить такую задачку (DELPHI) но что то тяго у меня с нею, помогите Сформировать целочисленную квадратную матрицу А порядка n, элементы которой рассчитываются по формуле Aij=min(i,j,n-i+1,n-j+1), i,j=1..n
Помогите пожалуйста с задачей. с++ Нужно определить число ветвей от корня до вершины с заданным элементом. Вывести часть дерева от вершины до данного элемента на экран. напишите пожалуйста только функцию, которая будет это выполнять.остальной код уже написала: #include "stdafx.h" #include <iostream> using namespace std; struct TREE { int d; TREE *left; TREE *rigth; }; void first (TREE *&,int ); TREE* search (TREE *, int ); void find (TREE *, TREE *&, int ); void add (TREE *, int ); void print_tree (TREE * ); void print_tree_level (TREE *, int ); void del_tree (TREE *&top); void main( void ) { int b[ ] = {20, 10, 8, 12, 30, 25, 34, 22}; TREE *top; first(top, b[0]); for (int i = 1; i < 8; i++) add (top, b); cout<<" initial tree "; print_tree (top); cout<< endl<<endl; cout<<" the tree by levels: "; print_tree_level(top,0); cout<<endl; del_tree(top) ; system ("pause"); } void first (TREE *&top, int d) { top = new TREE; top -> d = d; top -> left = top -> rigth = NULL; } TREE* search(TREE *top, int d) { TREE *pv = top, *ppv; while (pv) { ppv = pv; if (d < pv -> d) pv = pv -> left; else pv = pv -> rigth; } return ppv; } void find(TREE *top, TREE *&p, int d) { if (top) { p = top; if (d < top -> d ) find(top -> left, p, d); else find(top -> rigth, p, d); } else p = NULL; } void add (TREE *top, int d) { TREE *ppv,*pnew = new TREE; pnew -> d = d; pnew -> left= NULL; pnew -> rigth = NULL; ppv = search(top, d); if (d < ppv -> d) ppv -> left = pnew; else ppv -> rigth = pnew; } void print_tree (TREE * top) { if (top) { print_tree (top -> left); cout << top -> d << " "; print_tree(top -> rigth); } } void print_tree_level(TREE * top, int level) { if (top) { print_tree_level (top -> left, level + 1); for (int i = 0; i < level; i++) cout <<" "; cout << top ->d <<endl; print_tree_level(top -> rigth, level + 1); } } void del_tree (TREE *&top) { if (top) { del_tree (top -> left); del_tree(top -> rigth); delete top; top = NULL; }
Code: program Project1; {$APPTYPE CONSOLE} uses SysUtils; type MinMat=array[1..4]of Integer; const M=20; var Matrix:array[1..M,1..M]of Integer; N,i,j,x:Integer; MinMat1:MinMat; function Min(const A:MinMat): Integer; var i:Integer; begin Result:=32767; for i:=1 to 4 do if a[i]<Result then Result:=a[i]; end; begin { TODO -oUser -cConsole Main : Insert code here } repeat Writeln('Vvedite M, ne bolshe '+IntToStr(M)); Readln(N); until (N<=M)and(N>0); for j:=1 to N do for i:=1 to N do begin MinMat1[1]:=i; MinMat1[2]:=j; MinMat1[3]:=n-i+1; MinMat1[4]:=n-j+1; Matrix[i,j]:=Min(MinMat1); end; for j:=1 to N do begin for i:=1 to N do begin Write(IntToStr(Matrix[i,j])); end; Writeln; end; Readln; end.
Спс) После долгих разборов, проект успехов не увенчался. Препод сказал что нужно начинать так: var matr:array [1..10, 1..10] of integer; i,j,n:integer; minmat:array[1..4] of integer; begin for j:=1 to N do for i:=1 to N do MinMat[1]:=i; MinMat[2]:=j; MinMat[3]:=n-i+1; MinMat[4]:=n-j+1; а вот дальше что надо?
Помогите написать программу на си/си++, которая с помощью move to(x,y) и line to(x,y) рисует американский флаг, причем количество звезд, линий, ширина линий, размер звезд и цвет задается пользователем.
Задачка на С++ найти по каждому столбцу матрицы A[m,n] максимальный и минимальный элементы и поменять их местами. Для формирования матрицы использовать динамический массив(вот с этим массивом то я и не могу разобраться=(((((( )
Задание : Даны уравнения кривых: 1. 3*(0.5/(x+1)+1) 2. 2.5*x - 9.5 3. x/5 (x>0) Вычислить их пересечение методом хорд и посчитать площадь, получившейся трапеции, формулой прямоугольников. Должны быть функции : root (f, a, b, eps) и integral (f, a, b, eps) Вот, что получилось у меня, но не идет, что надо поправить ? #include<stdio.h> #include<math.h> double F_1 (double x) { return 2.5*x - 9.5; } double F_2 (double x) { return 3*(0.5/(x+1)+1); } double F_3 (double x) { return 5/x; } double F1 (double x) { return (-2.5*x*x +10*x +11)/(x+1); } double F2 (double x) { return 2.5*x*x -9.5*x -5; } double F3 (double x) { return (3*x*x +8*x +0.5)/(x+1); } double F1_p (double x) { return -3/(x*x*x +3*x*x +3*x +1); } double F2_p (double x) { return 5.0; } double F3_p (double x) { return 9/(x*x*x +3*x*x +3*x +1); } double root (double (*F)(double), double (*F_p)(double), double a, double b, double eps) { double x1; double x2; double c; if ( F(a)*F_p(a)>0) { x1=b; c=a; } else { x1=a; c=b; } while ( F_p(x1)>eps ) { x2=x1- F(x1)*(x1-c)/ (F(x1)-F(c)); x1=x2; } return x1; } double integral(double (*F)(double), double a, double b, double eps) ){ double sum=0.0, h; int i; int n=1; while (eps!=1) { eps=eps*10; n=n*10; } printf ("N: %d", n); h = (b-a)/n; for(i=1; i <= n; i++) { sum = sum + F( a + h * (i - 0.5) ); } sum = sum * h; return sum; } int main () { double x_per1, x_per2, x_per3; double a1, a2, a3; double a=-2.5; double b=5.0; x_per1=root(F1, F1_p, a,b, 0.001); x_per2=root(F2, F2_p, a,b, 0.001); x_per3=root(F3, F3_p, a,b, 0.001); a1=integral(F_1, x_per1, x_per2, 0.001); a2=integral(F_3, x_per3, x_per1, 0.001); a3=integral(F_2, x_per3, x_per2, 0.001); sum=a1+a3-a2; printf ("Rezults:\n"); printf ("First: %lf\n", x_per1); printf ("Second: %lf\n", x_per2); printf ("Third: %lf\n", x_per3); printf ("Sum: %lf\n", sum); }
нужно решить задание на паскале. помогите Создать класс вектор на плоскости, поля класса — координаты векто- ра. Методы класса: вычисление длины вектора, вывод характеристик вектора. В классе предусмотреть методы перегрузки операций: сложение, скалярное и век- торное произведение векторов.
Всем доброго времени суток. Препод нам контрольную дал, там в одном из вопросов написать листинг программы,которая бы считывала текстовый файл,определяла в какой кодировке текст, затем перекодировал в одну из трех кодировок, какую именно указывает пользователь. И сохраняет и перезаписывает текстовый файл,с тем же содержимым но в другой кодировке. Помогите кто может. Если потребуется вознаграждение.то без проблем в течении недели- другой (пока "пенсию" вышлют ) если что пишите в аську 578328777 Чуть не забыл, язык С++
Прошу закометнтировать Всем привет! такая просьба, напишите комментарий к каждой строчке пожалуйста) Заранее спасибо! Code: #include<iostream.h> #include<string.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> #pragma warning(disable: 4996) #define word unsigned int int i, j, n, p, xn, xk; int flag[11]; word c[11][11], l[11]; char s[80], path[80][11]; int min(int n) { int i, result; for(i=0;i<n;i++) if(!(flag[i])) result=i; for(i=0;i<n;i++) if((l[result]>l[i])&&(!flag[i])) result=i; return result; } word minim(word x, word y) { if(x<y) return x; return y; } void main() { cout<<"Введите количество точек: "; cin>>n; for(i=0;i<n;i++) for(j=0;j<n;j++) c[i][j]=0; for(i=0;i<n;i++) for(j=i+1;j<n;j++) { cout<<"Введите растояние от x"<<i+1<<" до x"<<j+1<<": "; cin>>c[i][j]; } cout<<" "; for(i=0;i<n;i++) cout<<" X"<<i+1; cout<<endl<<endl; for(i=0;i<n;i++) { printf("X%d",i+1); for(j=0;j<n;j++) { printf("%6d",c[i][j]); c[j][i]=c[i][j]; } printf("\n\n"); } for(i=0;i<n;i++) for(j=0;j<n;j++) if(c[i][j]==0) c[i][j]=65535; //бесконечность cout<<"Введите начальную точку: "; cin>>xn; cout<<"Введите конечную точку: "; cin>>xk; xk--; xn--; if(xn==xk) { cout<<"Начальная и конечная точки совпадают."<<endl; getch(); return; } for(i=0;i<n;i++) { flag[i]=0; l[i]=65535; } l[xn]=0; flag[xn]=1; p=xn; itoa(xn+1,s,10); for(i=1;i<=n;i++) { strcpy(path[i],"X"); strcat(path[i],s); } do { for(i=0;i<n;i++) if((c[p][i]!=65535)&&(!flag[i])&&(i!=p)) { if(l[i]>l[p]+c[p][i]) { itoa(i+1,s,10); strcpy(path[i+1],path[p+1]); strcat(path[i+1],"-X"); strcat(path[i+1],s); } l[i]=minim(l[i],l[p]+c[p][i]); } p=min(n); flag[p]=1; } while(p!=xk); if(l[p]!=65535) { cout<<"Путь: "<<path[p+1]<<endl; cout<<"Длинна пути: "<<l[p]<<endl; } else cout<<"Такого пути не существует!"<<endl; getch(); }
Code: program p1; const n = 10; //размерность массива var a: array[1..n] of integer; i, tmp: integer; begin randomize; for i:=1 to n do a[i]:=random(100)-50; //генерируем массив for i:=1 to n do write(a[i]:4); //вывод массива for i:=1 to n div 2 do begin tmp:=a[n-i+1]; a[n-i+1]:=a[i]; a[i]:=tmp; end; for i:=1 to n do write(a[i]:4); //вывод массива readln; end. Code: program p2; var a,b,c: real; i:integer; begin for i:=1 to 15 do begin a:=random(100)-50; b:=random(100)-50; c:=a[i]*b[i]; writeln('a',i,'=',a[i]); writeln('b',i,'=',b[i]); writeln('a',i,'*b',i,'=',c[i]); end; readln; end.
вот задача "Сколько раз повторяется в тексте каждое слово, которое встречается в нём?" 19:57:09 Обрабатываемый в программе текст должен содержать несколько строк. Но массив строк не формировать, то есть в оперативной памяти хранить одну обрабатываемую строку. Оперативную память резервируем для одной строки. Вводим строку, анализируем её и на её место вводим новую строку +цветной вывод Вижуал си )