zemlo Опубликовано 28 ноября, 2009 Жалоба Поделиться Опубликовано 28 ноября, 2009 Просто зашиваюсь, всвязи с командировками появилось много хвостов. Незнаешь за что хвататься. Помогите пожайлуста. Есть код. #include<iostream.h>#include<math.h>int main(){int x1,x2;int b;int a;int c;cout<<"\n Vvedite a";cin>>a;cout<<"\n Vvedite b";cin>>b;cout<<"\n Vvedite c";cin>>c;if(b<a,b<c){cout<<"\nB dolghno byt bolshe A i C";return 1;}x1=((-b+sqrt(b*b))-(4*a*c))/(2*a);x2=((-b-sqrt(b*b))-(4*a*c))/(2*a);cout<<"\n x1="<<x1;cout<<"\n x2="<<x2;return 0;} Нужно добавить сложение двух матриц по формулам: S1 - первая матрица с элементами (s1.a11 s1.a12) (s1.a21 s1.a22) S2 - вторая матрица с элементами (s2.a11 s2.a12) (s2.a21 s2.a22) S3 = S1 + S2 s3.a11 = s1.a11 + s2.a11 s3.a12 = s1.a12 + s2.a12 s3.a21 = s1.a21 + s2.a21 s3.a22 = s1.a22 + s2.a22 Код написал как смог (извинити, только учусь) Если Вас не затруднит, напишите отдельно программу по сложению матриц по этим формулам. Ссылка на комментарий Поделиться на другие сайты Поделиться
AutoGen Опубликовано 28 ноября, 2009 Жалоба Поделиться Опубликовано 28 ноября, 2009 Доброго времени суток) Помогите плиз набросать классы для задачи, начали недавно c# изучать ну вообщем после делфей немного сложно( Суть задачи нужна схема работы маршрутного такси с возможностью добавления удаления остановок и пассажиров и схематической симуляцией....т.е. показать на какой остановке такси, сколько в нем пассажиров на остановке и т.д. Заранее спасибо за любую помощь AutoGen: вот набросал примерчик: class mTaxi{private string[] stopsets; //остановкиprivate int curstopset; //текущая остановкаprivate int napravlenie; //направление движения (1 или -1)public int marshrut; //номер маршрутаpublic int passagirs; //сколько пассажиров в таксиpublic string stopset //текущая остановка{ get { return stopsets[curstopset]; } set { }}public mTaxi(int Marshrut, string[] Stopsets){ //конструктор класса, в параметре передается номер маршрута и массив с остановками stopsets = Stopsets; marshrut = Marshrut; curstopset = 0; passagirs = 0; napravlenie = 1;}public void add_passagir(){ //добавляет 1 пассажира passagirs++;}public void add_passagir(int n){ //добавляет n пассажиров passagirs += n;}public bool del_passagir(){ //высаживает 1 пассажира if (passagirs == 0) return false; passagirs--; return true;}public bool del_passagir(int n){ //высаживает n пассажиров if (passagirs < n) return false; passagirs -= n; return true;}public string go_to_next_stopset(){ //едет на следующую остановку curstopset += napravlenie; if (curstopset == 0) napravlenie = 1; //меняем направление if (curstopset == stopsets.Length - 1) napravlenie = -1; //на конечных остановках return stopsets[curstopset];}} Вообщем благодаря помощи Ф@РТОВЫЙ написал с ошибками исче два необходимых класса с поведением...но застрял на визуализации....т.е. сейчас нужно сделать форму.Кто может помочь напишите в асю..... я просто не знаю как сдесь прикреплять файлы....а то прикрепил бы проект... заранее спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
andre! Опубликовано 29 ноября, 2009 Жалоба Поделиться Опубликовано 29 ноября, 2009 Здраствуите! уважаемый тролль помогите решить задачу по C++ : тема - Строковый тип данных Задача: Struct Для отображения информации о студентах с фамилиями, которые начинаются с буквы, в течение определенного.( ФИО,група,дата, месяц,год рождения ) в типе Struct. спасибо :blush2: Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 29 ноября, 2009 Жалоба Поделиться Опубликовано 29 ноября, 2009 andre!: уважаемый тролль помогите Почему именно Тролль? Тут и другие участники пишут решения... Затем, "в течение определенного."??? Чего определенного? И вообще, это не задача, а часть предложения из текста условия. Судя по ней - прокрути несколько сообщений назад, только что эту задачу для volchok91 делал, только без таинственного "определенного" :g: Вы что, из одной группы? Ссылка на комментарий Поделиться на другие сайты Поделиться
OrlandoBlumm Опубликовано 1 декабря, 2009 Жалоба Поделиться Опубликовано 1 декабря, 2009 Ребят помогите написать 2 программы на си(не на си++, а именно на си) №1 Дана целочисленная квадратная матрица. Определить: 1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов; 2) максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. №2 В одномерном массиве, состоящем из вещественных элементов, вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента. Сжать массив, удалив из него все элементы, модуль которых находится в интервале[a,b]. Оставшиеся в конце массива элементы заполнить нулями. Заранее спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
ozi Опубликовано 1 декабря, 2009 Жалоба Поделиться Опубликовано 1 декабря, 2009 Ребята всем доброго времени суток! Мне очень нужно помочь решить задачку по теме "Элементы алгоритмизации и программирования" Вот собственно она: 2. Алгоритмы с циклом. Проанализируйте заданный алгоритм согласно варианту(Мой вариант 28). Проделайте в тетради или текстовом процессоре Word следующую работу: исполните алгоритм при 2-3 наборах данных. Запишите исходные данные, промежуточные данные и результат работы для каждого из выбранных наборов значений величин. Дополнительное задание: если сможете, сформулируйте условие задачи, которая решается с помощью представленного алгоритма. Program Pr;Var a, b, c, d, m, n: integer;Begin Write ('введите натуральные числа a, b, c: '); Readln (a, b, c); m:=a; n:=b; while m<>n do if m>n then m:=m-n else n:=n-m; n:=c; while m<>n do if m>n then m:=m-n else n:=n-m; if m=1 then writeln('взаимно простые') else writeln('нет')End. Сдесь находится задача из моей лабораторной: Сайт для студентов и учителей (Доцента. Зав. каф. информатики ПГПУ (пермь) Шестакова А.П.) А вот примеры(С этого же сайта): Примеры (Шестакова. А.П.) И если возможно то еще 3 тию задачку проанализировать))) 3. Алгоритмы с массивами. Проанализируйте заданный алгоритм согласно варианту.(Мой вариант 28 Проделайте в тетради или текстовом процессоре Word следующую работу: исполните алгоритм при наборах данных, позволяющих отследить прохождение по каждой ветви алгоритма. Задайте массив не менее чем из 10 элементов. Набор данных должен быть необходимо достаточным. Запишите исходные данные, промежуточные данные и результат работы для каждого из выбранных наборов значений величин. Решение можно оформить, как показано в примере. Program Ex_28;Type LinMass = Array[1..100] Of Integer;Var M : LinMass; N, i, o, p : Integer;begin Write('Количество элементов массива? '); ReadLn(N); For I := 1 To N Do Begin Write('Введите M[', I, '] '); ReadLn(M[i]); End; o:= 0; p:=0; For I := 1 To N Do beginif M[i]>0 then p:=p+a[i];if M[i]<0 then o:=o+a[i]; end; if abs(o)=abs(p) then writeln('Модули сумм равны') else if abs(o)>abs(p) then writeln('Модуль суммы отрицательных элементов больше') else writeln('Модуль суммы положительных элементов больше') Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 1 декабря, 2009 Жалоба Поделиться Опубликовано 1 декабря, 2009 (изменено) OrlandoBlumm: Дана целочисленная квадратная матрица. Определить: 1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов; 2) максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. #include<stdio.h>#include<math.h>main(){int i,j,n,r,s,m,a[20][20];printf("\nn? "); scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++){printf("a[%d][%d]? ",i+1,j+1);scanf("%d",&r);a[i][j]=r;}s=0; for(i=0;i<n;i++){r=0;for(j=0;j<n;j++){if(a[i][j]<0){r=0; break;}r+=a[i][j];}s+=r;}m=abs(a[0][0]); for(i=0;i<n-1;i++){r=0; for(j=0;j<=i;j++)r+=abs(a[i][i-j]); if(m<r)m=r; printf("\n");}for(i=1;i<n;i++){r=0; for(j=n;j>i;j--)r+=abs(a[n-j+i][j-1]); if(m<r)m=r; printf("\n");}printf("\ns=%8d\nm=%8d\n",s,m); getchar();getchar();} В одномерном массиве, состоящем из вещественных элементов, вычислить:1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента. Сжать массив, удалив из него все элементы, модуль которых находится в интервале[a,b]. Оставшиеся в конце массива элементы заполнить нулями. #include <stdio.h>#include<math.h>main(){int i,j,n; float a,b,s,m,c[100]; printf("\nn? "); scanf("%d",&n); for(i=0;i<n;i++){printf("c[%d]? ",i+1);scanf("%f",&c[i]);}m=c[0]; for(i=0;i<n;i++)if(m<c[i])m=c[i]; s=0; for(i=n-1;i>=0;i--)if(c[i]>0)break; for(--i;i>=0;i--)s+=c[i];printf("m=%8.2f\ns=%8.2f\n",m,s);printf("a b ? "); scanf("%f%f",&a,&b); for(i=0,j=0;i<n;i++)if(a>fabs(c[i])||b<fabs(c[i])){c[j]=c[i]; j++;} for(i=j;i<n;i++)c[i]=0;for(i=0;i<n;i++)printf("%8.2f",c[i]); printf("\n"); getchar(); getchar();} ozi: Сначала плодумал, что вашему Шестакову лет семьдесят, даже не поленился взглянуть на его фото. Странно, он выглядит намного моложе. "Изучение программирования разумно начинать собственно с разработки алгоритмов, не акцентируя первоначально внимания на записи алгоритма на том или ином языке программирования. В то же время автор, являясь сторонником структурного подхода к программированию, предлагает придерживаться этого подхода и при программировании на уровне блок-схем." На уровне блок-схем перестали программировать лет тридцать назад, может, чуть больше... О необходимости структурного подхода говорили примерно в то же время, после работы Дейкстры 1968 года. Сейчас об этом говорить - как заявлять, что "я сторонник теории шарообразной Земли". А вообще-то программирование давно перешло к объектно-ориентированному подходу. Ручное исполнение алгоритмов... "Проделайте в тетради или текстовом процессоре Word следующую работу: исполните алгоритм при наборах данных, позволяющих отследить прохождение по каждой ветви алгоритма. Задайте массив не менее чем из 10 элементов." Оформление показано на примере - буквально простыня из не нужных никому промежуточных результатов. Сочувствую, но с оформлением простейших примеров на бумажных простынях тебе придется мучиться самому :D. Изменено 1 декабря, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
AutoGen Опубликовано 1 декабря, 2009 Жалоба Поделиться Опубликовано 1 декабря, 2009 Народ глянть плиз код, он рабочий, в задаче вводиться и транспонируется произвольная матрица.....но есть небольшая ошибка которую никак не могу найти, а во вторых препод просит сделать чтобы была "какаянибудь" функция+работа с указателями... #include <iostream>#include <conio.h>#include <windows.h>using namespace std;int **mas, n,m, i,j;int main (){SetConsoleCP(1251);SetConsoleOutputCP(1251);cout<<"Vvedite kol-vo strok : "<< endl;cin>>n; cout<<"Vvedite kol-vo stolbzov: "<< endl;cin>>m;mas=new int*[n];for(i=0; i<n; i++) mas[i]=new int[m];cout<<"Vvedite elementi matrizi: "<< endl;for(i=0; i<n; i++) for(j=0; j<m; j++) { cout<<"["<<i<<"]["<<j<<"]= "; cin>>mas[i][j]; } cout<<"Ishodnaya matriza"<<endl;int *l;l=&i;for(i=0; i<n; i++) { for(j=0; j<m; j++) cout<<mas[*l][j]<<" "; cout<<endl; } cout<<"Trans-ya :"<<endl; int *p; p=&buff; for(i=0; i<n-1; i=i+2) { for (j=0; j<m; j=j+1) { int *p=mas[i][j]; //получение значения по адресу mas[i][j]=mas[i+1][j]; mas[i+1][j]=*p; } } for(i=0; i<n; i++) { for(j=0; j<m; j++) cout<<mas[i][j]<<" "; cout<<endl; } system("pause");return 0; } Ссылка на комментарий Поделиться на другие сайты Поделиться
OrlandoBlumm Опубликовано 1 декабря, 2009 Жалоба Поделиться Опубликовано 1 декабря, 2009 Огромное спасибо Тролль. Вы меня очень выручали :D Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 1 декабря, 2009 Жалоба Поделиться Опубликовано 1 декабря, 2009 (изменено) AutoGen: Насчет рабочего кода сильно сомневаюсь, рабочие только ввод-вывод. а как ты пытался транспонировать матрицу, я так и не понял. Насчет произвольной матрицы тоже преувеличено, массив объявляется для одной матрицы, а прямоугольная транспонированная имела бы другие измерения, так что это годится только для квадратной. Соответственно я оставил матрицу квадратной, вводится только один размер. Работать же с указателями при наличии скобок, ИМХО, вообще для любителей чесать левой ногой правое ухо. С учетом сказанного, желаемой какой-нибудь функции и использования указателей вышло так: #include <iostream>#include <iomanip>#include <windows.h>using namespace std;int **mas,n,m;void swap(){for(int i=0;i<n;++i)for(int j=i;j<m;j++){int p=*(*(mas+i)+j);*(*(mas+i)+j)=*(*(mas+j)+i);*(*(mas+j)+i)=p;}}int main (){ int i,j;SetConsoleCP(1251); SetConsoleOutputCP(1251);cout<<"Vvedite razmer matrizi: "; cin>>n; m=n;mas=new int*[n]; for(i=0;i<n;i++)mas[i]=new int[m];cout<<"Vvedite elementi matrizi: "<<endl;for(i=0;i<n;i++)for(j=0;j<m;j++){cout<<"["<<i<<"]["<<j<<"]= ";cin>>mas[i][j];}cout<<"Ishodnaya matriza"<<endl;for(i=0; i<n; i++){for(j=0; j<m; j++)cout<<setw(8)<<mas[i][j]<<" ";cout<<endl; }cout<<"Trans-ya :"<<endl;swap();for(i=0; i<n; i++){for(j=0; j<m; j++)cout<<setw(8)<<mas[i][j]<<" ";cout<<endl;} system("pause"); return 0; } Изменено 1 декабря, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
AutoGen Опубликовано 1 декабря, 2009 Жалоба Поделиться Опубликовано 1 декабря, 2009 Спасибо, буду пробывать сделать для произвольной матрицы....а то опять прикопается(((....а про указатели это да)))) Ссылка на комментарий Поделиться на другие сайты Поделиться
MakentoIII Опубликовано 2 декабря, 2009 Жалоба Поделиться Опубликовано 2 декабря, 2009 Ребят тут такая проблема есть задача её надо решить через процедуры и ф-ции. Помогите остаться на стипендии по возможности распишите как можно подробнее чтобы я въехал Вот условие задачи Сформировать матрицы{a ij} n,m , {b ij} k,l , где i<=(n,k), j<=(m,l) , элементы которых определяются случайно из диапазона целых чисел от -100 до 100. Фактическое число строк (n,k) и столбцов (m,l) каждой матрицы вводить с клавиатуры. Создать функцию, которая меняет местами наибольший и наименьший элемент матрицы. Вывести на экран: исходные, результирующие массивы, а также наибольший и наименьший элементы матриц. Ссылка на комментарий Поделиться на другие сайты Поделиться
PriN_ce Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 Здрасте, помогите "разжевать" задачу, на толкнуть на путь правильный... Реализовать двусвязный список и обеспечить обработку всех элементов списка, заранее неизвестной функцией, зная только её прототип.(применить указатель на функцию) То что я написал, это есть двусвязный список? : #include <stdio.h>struct add {char* a;struct add *p_adr, *p_next, *p_pred;};void main() {struct add *p,*pl=0,*p_pr=0;int i=0;for (;i<5;i++) { p = malloc(10); p->a = (char*)malloc(30); scanf("%s",p->a); p->p_adr=pl; p->p_next=p; p->p_pred=p_pr; p_pr=pl; pl=p;}for(p=pl;p!=0; p=p->p_adr){ printf("p->a=%s\np->p_next=%.08X\np->p_adr=%.08X\np->p_pred=%.08X\n\n", p->a,p->p_next,p->p_adr,p->p_pred);}getch();} Если да, то что значит обеспечить обработку всех элементов списка, заранее неизвестной функцией, зная только её прототип? Вобщем помогите растолковать, что от меня хотят :) Ссылка на комментарий Поделиться на другие сайты Поделиться
zemlo Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 Помогите исправить ошибки. компилятор ругается на random и cout #include<stdio.h>#include<math.h>main(){int i,j,a[2][2],b[2][2],c[2][2];for( i=0;i<2;i++);for( j=0;j<2;j++);{ a[i][j]=random(100); b[i][j]=random(100);}for ( i = 0; i<2; i++)for ( j = 0; j<2; j++){ c[i][j] = a[i][j]+b[i][j]; }cout<< c[i][j];return 0;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 (изменено) zemlo: Ошибок много, поэтому разбирать каждую не буду, просто исправлю: #include<iostream.h>main(){int i,j,a[2][2],b[2][2],c[2][2];for(i=0;i<2;i++) for(j=0;j<2;j++){a[i][j]=rand()%100; b[i][j]=rand()%100;}for(i=0;i<2;i++) for(j=0;j<2;j++){c[i][j]=a[i][j]+b[i][j]; cout<<c[i][j]<<endl;}getchar(); return 0;} Изменено 3 декабря, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
zemlo Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 zemlo: Ошибок много, поэтому разбирать каждую не буду, просто исправлю: #include<iostream.h>main(){int i,j,a[2][2],b[2][2],c[2][2];for(i=0;i<2;i++) for(j=0;j<2;j++){a[i][j]=rand()%100; b[i][j]=rand()%100;}for(i=0;i<2;i++) for(j=0;j<2;j++){c[i][j]=a[i][j]+b[i][j]; cout<<c[i][j]<<endl;}getchar(); return 0;} Спасибо, что нашли время и помогли, но все равно ругается на rand и getchar. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 PriN_ce: что значит обеспечить обработку всех элементов списка, заранее неизвестной функцией, зная только её прототип? Это значит, что вид функции остается неопределенным, программа пишется в общем виде. Для проверки надо будет задать, конечно, какую-нибудь конкретную функцию. Применить указатель на функцию значит, что функция должна вызываться в виде (*f)(x). А перед этим указателю надо присвоить имя какой-то функции, например, f=sin; zemlo: Ну, один C++ другому C++ рознь. Сейчас проверил, в Dev-C++ работает. Но разные реализации отличаются тем, в какие заголовочные файлы входят какие функции. Добавь в начало еще #include<stdlib.h> #include<stdio.h> И, кстати, хотя создаваемые rand числа и будут псевдослучайными, каждый раз будет выдаваться одна и та же последовательность этих чисел. Чтобы они каждый раз были другими, добавь в начале программы srand(time(NULL)); а к заголовочным файлам добавь #include<time.h> При этом начальное значение генератора случайных чисел будет задаваться текущим временем. Ссылка на комментарий Поделиться на другие сайты Поделиться
zemlo Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 Ещё раз спасибо за разъяснение. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 MakentoIII: #include<iostream.h>#include<time.h>int i,j,k,l,m,n,a[50][50],b[50][50]; void swap(int c[50][50],int p,int q){int i,j,k,imin,imax,jmin,jmax,max,min; min=max=**c;for(i=0;i<p;i++)for(j=0;j<q;j++) {if(c[i][j]<=min){min=c[i][j];imin=i;jmin=j;} if(c[i][j]>=max){max=c[i][j];imax=i;jmax=j;}}k=c[imin][jmin];c[imin][jmin]=c[imax][jmax];c[imax][jmax]=k;cout<<"min="<<min<<endl<<"max="<<max<<endl;}main(){cout<<"n m k l ? "; cin>>n>>m>>k>>l; cout<<endl;srand(time(NULL)); for(i=0;i<n;i++)for(j=0;j<m;j++)a[i][j]=rand()%201-100; for(i=0;i<n;i++){for(j=0;j<m;j++){cout.width(8);cout<<a[i][j];}cout<<endl;}swap(a,n,m); for(i=0;i<n;i++){for(j=0;j<m;j++){cout.width(8);cout<<a[i][j];}cout<<endl;}cout<<endl;for(i=0;i<k;i++) for(j=0;j<l;j++)b[i][j]=rand()%201-100; for(i=0;i<k;i++){for(j=0;j<l;j++){cout.width(8);cout<<b[i][j];}cout<<endl;}swap(b,k,l); for(i=0;i<k;i++){for(j=0;j<l;j++){cout.width(8);cout<<b[i][j];}cout<<endl;}getchar();getchar();} Ссылка на комментарий Поделиться на другие сайты Поделиться
volchok91 Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 Доброго времени суток, помогите пожалуйста еще с одной лабой, никак не осилю, заранее спасибо, Выполнить сортировку целочисленного массива (поиск в массиве) из n элементов. Алгоритм сортировки (поиска) оформить в виде функции Сортировка простой (линейной) вставкой Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 3 декабря, 2009 Жалоба Поделиться Опубликовано 3 декабря, 2009 volchok91: #include<iostream.h>#include<iomanip.h>void sort(int *a, int n) {int i,j,t; for(i=0;i<n;i++){t=a[i];for(j=i-1;j>=0&&a[j]>t;j--)a[j+1]=a[j];a[j+1]=t;}}main(){int i,j,n,a[100]; cout<<"n ? "; cin>>n; cout<<"a ? "; for(i=0;i<n;i++)cin>>a[i];for(i=0;i<n;i++)cout<<setw(8)<<a[i]; cout<<endl; sort(a,n);for(i=0;i<n;i++)cout<<setw(8)<<a[i]; cout<<endl; getchar();getchar();} Ссылка на комментарий Поделиться на другие сайты Поделиться
volchok91 Опубликовано 4 декабря, 2009 Жалоба Поделиться Опубликовано 4 декабря, 2009 Спасибо огромное, выручили Ссылка на комментарий Поделиться на другие сайты Поделиться
Nikolai 45 Опубликовано 6 декабря, 2009 Жалоба Поделиться Опубликовано 6 декабря, 2009 Пожалуйста помогите написать программу на с++ Задача Объявить массив целых чисел и заполнить его случайными значениями. Размер массива 100 и диапазон значений -100 - 100. Разместить все элементы с нулевыми значениями в левой части массива, элементы с отрицательными значениями - за ними, а за ними - элементы с положительными значениями. Ссылка на комментарий Поделиться на другие сайты Поделиться
volchok91 Опубликовано 6 декабря, 2009 Жалоба Поделиться Опубликовано 6 декабря, 2009 Помогите пожалуйста сделать 2 лаб раб, на основе предыдущих двух, буду очень признателен. 1) ПЕРЕГРУЗКА ФУНКЦИЙ Постановка задачи Используя алгоритм упорядочивания матрицы, разработан¬ный в лабораторной работе №1, разработать и протестировать две перегруженные функции, одна из которых обрабатывает це¬лочисленную матрицу, другая матрицу, элементы которой строки. а вот код этой первой лаб.,которую вы мне уже помогли: #include<iostream.h> #include<iomanip.h> main(){ int i,j,k,m,n,t,a[100][50]; cout<<"Dimensions ? "; cin>>n; cin>>m; for(i=0;i<n;i++){cout<<"Line "<<i+1<<" : "; for(j=0;j<m;j++)cin>>a[j];} for(i=0;i<n;i++)for(k=0;k<m-1;k++)for(j=0;j<m-k-1;j++)if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<n;i++){cout<<endl; for(j=0;j<m;j++)cout<<setw(8)<<a[j];} cout<<endl; getchar(); getchar();} и вторая: 2)ШАБЛОНЫ ФУНКЦИЙ Постановка задачи Создать шаблон функции, выполняющей сортировку или поиск элементов массива. Протестировать шаблон для массивов с элементами различных типов, int, float и char. Варианты заданий приведены в лабораторной работе №2. (вот задание лаб. №2 Выполнить сортировку целочисленного массива (поиск в массиве) из n элементов. Алгоритм сортировки (поиска) оформить в виде функции.Сортировка простой (линейной) вставкой) код на эту программу вы тоже мне помогли: #include<iostream.h> #include<iomanip.h> void sort(int *a, int n) {int i,j,t; for(i=0;i<n;i++){t=a;for(j=i-1;j>=0&&a[j]>t;j--)a[j+1]=a[j];a[j+1]=t;}} main(){ int i,j,n,a[100]; cout<<"n ? "; cin>>n; cout<<"a ? "; for(i=0;i<n;i++)cin>>a; for(i=0;i<n;i++)cout<<setw(8)<<a; cout<<endl; sort(a,n); for(i=0;i<n;i++)cout<<setw(8)<<a; cout<<endl; getchar();getchar(); } Помогите пожалуйста с этим. Заранее огромное спасибо. Зачетная неделя горит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 6 декабря, 2009 Жалоба Поделиться Опубликовано 6 декабря, 2009 Nikolai 45: Объявить массив целых чисел и заполнить его случайными значениями. Размер массива 100 и диапазон значений -100 - 100. Разместить все элементы с нулевыми значениями в левой части массива, элементы с отрицательными значениями - за ними, а за ними - элементы с положительными значениями. #include<iostream.h>#include<time.h>main(){int i,j,b,a[100]; srand(time(NULL)); int n=sizeof(a)/sizeof(int);for(i=0;i<n;i++)a[i]=rand()%201-100;for(i=0;i<n;i++){cout.width(8);cout<<a[i];}cout<<endl;j=0; for(i=0;i<n;i++)if(a[i]==0){b=a[i];a[i]=a[j];a[j]=b;j++;}for(i=j;i<n;i++)if(a[i]<0){b=a[i];a[i]=a[j];a[j]=b;j++;}for(i=0;i<n;i++){cout.width(8);cout<<a[i];}cout<<endl;getchar();} Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти