
03.01.2010, 22:10
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 26
Провел на форуме: 33560
Репутация:
15
|
|
Сообщение от STIFFmaster
Помогите, пожалуйста. Буду признателен.
Дана целочисельная матрица. Отсортировать строки матрицы относительно первого элемента строки по убыванию.
PHP код:
#include <iostream>
using namespace std;
int main()
{
int l = 0;
int a[3][3] = {
3,7,3,
4,2,8,
6,8,1
};
for(int i = 0; i < 3; i++)
{
for(int j = 1; j < 3; j++)
{
int t = a[i][j], l = 0;
for(l=j-1; (l >= 0)&&(a[i][l] < t); l--)
{ a[i][l+1]=a[i][l]; }
a[i][l+1] = t;
}
}
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{ cout << a[i][j] <<" "; }
cout << endl;
}
return 0;
}
|
|
|

03.01.2010, 22:13
|
|
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме: 152084
Репутация:
8
|
|
Сообщение от XimiK69
PHP код:
#include <iostream>
using namespace std;
int main()
{
int l = 0;
int a[3][3] = {
3,7,3,
4,2,8,
6,8,1
};
for(int i = 0; i < 3; i++)
{
for(int j = 1; j < 3; j++)
{
int t = a[i][j], l = 0;
for(l=j-1; (l >= 0)&&(a[i][l] < t); l--)
{ a[i][l+1]=a[i][l]; }
a[i][l+1] = t;
}
}
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{ cout << a[i][j] <<" "; }
cout << endl;
}
return 0;
}
хе хоть в C и не шарю пока особо.
товарищ зачем заранее матрицу и элементы определять?)
меня б в универе за это уже на кол посадили )
|
|
|

03.01.2010, 22:15
|
|
Новичок
Регистрация: 02.01.2010
Сообщений: 26
Провел на форуме: 33560
Репутация:
15
|
|
просто проверил алгоритм на этом примере, хотя с тобой согласен.....на константах работать нельзя....
|
|
|

03.01.2010, 23:41
|
|
Новичок
Регистрация: 07.04.2009
Сообщений: 19
Провел на форуме: 35427
Репутация:
3
|
|
Ребят, гляньте, что можно сделать ...
Код:
program xyz;
uses
SysUtils;
Function Ru ( S : string ) : string ;
VAR
T : string ; { временная строка}
i : integer ; { номер символа в строке }
code : byte ; { код символа }
BEGIN
T := S ; { получает значение параметра }
FOR i := 1 TO Length ( S ) DO { для всех символов строки S}
BEGIN { изменяет кодировку символов кириллицы }
code := Ord ( S[ i ] ) ; { определяет код символа}
CASE code OF { ПРОПИСНЫЕ БУКВЫ }
192 .. 197: T[ i ] :=Chr(code-64) ; { А-Е: 192-197 ->128-133}
168: T[ i ] :=#240; { Ё: 168->240}
198 .. 223: T[ i ] :=Chr(code-64); { Ж-Я : 198-223->128-133} { строчные буквы }
224 .. 229: T[ i ] :=Chr(code-64); { а-е : 224-229->160-165}
184: T[ i ] :=#241; { ё: 184 ->241}
230 .. 239: T[ i ] :=Chr(code-64); { е-п: 230-239->166-175}
240 .. 255: T[ i ] :=Chr(code-16); { р-я: 240-255->224-239}
END ;
END ;
Ru := T ; { возвращает значение временной строки }
END;
VAR
i,j,k,n,temp:integer; // искомые числа
repeat_it:boolean; // зацикливание программы (True/False)
ans:char; // используется для получения согласия для продолжения работы программы
label // идентификатор
p1;
Function IntSqrt(temp:integer):real; // функция для вычисления квадратного корня.
VAR
x:real;
t:real;
begin // начало функции
x:=sqrt(temp); // извлечение квадратного корня из числа.
if (x-round(x))=0 then t:=x // Если от х отнять округленный х будет равно нулю, тогда t=x.
else t:=0; // Либо t=0.
end;
begin
Writeln(Ru('Программа находит все натуральные числа, меньшие чем N, для которых выполняется соотношение a*a + b*b = c*c. [a,b,c < N]'));
Writeln; // ...
Writeln(Ru('Автор программы ...')); // Вывод информации на экран об авторе программы.
Writeln; // ...
Writeln('...'); // Вывод на экран - e-mail автора программы.
Writeln;
p1: // Возврат в это место при ошибке или при повторном вводе данных.
repeat_it:=true; // Зацикливание программы, True-правда.
while repeat_it=true do begin
Write(Ru('Введите число, которое вы хотите проверить: ')); // ...
read(temp);
Writeln('OTBET: ',IntSqrt(temp):6:0); // Отправить temp на обработку в функцию 'Formula()' и вывести результат на экран.
Writeln; // ...
Write(Ru('Введите N: ')); // ...
Read(n); // Ввод числа N
for i:=1 to N-1 do // Увеличиваем переменную результата в N-1 раз.
for j:=1 to N-1 do // Увеличиваем переменную результата в N-1 раз.
for k:=1 to N-1 do // Увеличиваем переменную результата в N-1 раз.
if i*i+j*j=k*k then Writeln('a=',i:4,'; b=',j:4,'; c=',k:4); // Если i*i+j*j=k*k, то выводятся на экран все возможные варианты решения этого уравнения.
Writeln; // ...
Write(Ru('Вы хотите продолжить работу с программой ? (Y/N): ')); // Предложить продолжить работу с программой.
Readln;
readln(ans); // Получить согласие.
writeln; // ...
if (ans='Y') or (ans='y') or (ans=Ru('Н')) or (ans=Ru('н')) then GoTo p1; // Если согласие получено - возврат к началу.
break;
end;
end.
Собственно если ввожу N = 6
то выводит ответ
a = 3 b = 4 c = 5
a = 4 b = 3 c = 5
то есть нужно просто добавить что-то (не знаю что) 
чтобы в случае если "с" совпадает несколько раз, тогда чтобы выводилось 1 раз.
|
|
|

04.01.2010, 01:04
|
|
Новичок
Регистрация: 29.11.2009
Сообщений: 4
Провел на форуме: 13349
Репутация:
0
|
|
Ребята нужна срочная помощь. Помогите кто, как сможешь. Принимаются любые версии.
Нужно написать программу для вычисления общего бала, зная оценки по лабам, тестам, но с учётом прогулов. Т.е. надо создать массив с оценками за лабы и тесты(размер массива определяется константами), вывести их среднее арифметическое(учитывая, что важность оценок в процентах такова: лабы - 75%, а тесты - 25%). Оценки находятся в структуре. Самое важное, это то что надо из среднего бала вычесть процент прогулов, который приблизительно равен 10%.
Программа не должна быть сильно сложной, где-то на уровне 1-го курса 1-го семестра.
Вот прога, которую я написал, но там нужно оценки за лабы и тесты сменить на массивы, с размером, меняющимся в константах.
Код:
#include<stdio.h>
/*Прога для вычисления оценки за лабы и тесты с учётом пропусков*/
struct Marks
{
char f[50], i[50], o[50];
float lab1, lab2, lab3, lab4;
float test1, test2;
float num_prop;
};
void main()
{
Marks stud;
scanf("%s %s %s", stud.f, stud.i, stud.o);
printf("Vvedite ocenki za labi\n");
scanf("%f %f %f %f", &(stud.lab1), &(stud.lab2), &(stud.lab3), &(stud.lab4));
printf("Vvedite ocenki za testi\n");
scanf("%f %f", &(stud.test1), &(stud.test2));
printf("Vvedite kol-vo propuskov\n");
scanf("%f", &(stud.num_prop));
float res;
res = (((stud.lab1 + stud.lab2 + stud.lab3 + stud.lab4) / 4) * 0.75) + (((stud.test1 + stud.test2) / 2) * 0.25) - (stud.num_prop * 0.1 * 5);
printf("%f", res);
getchar();
getchar();
}
Я начал делать с массивами, но не получается сделать вычисления.
Код:
#include<stdio.h>
const int n = 4;
const int m = 2;
struct Marks
{ char sur[50], nam[50], pat[50];
double lab[n], test[m];
double numSpace;
};
void main()
{
Marks stud;
printf("Enter your full name...\n\t");
scanf("%s %s %s", stud.sur, stud.nam, stud.pat);
printf("Enter marks of lab...\n\t");
for( int i = 0; i < n; i++ )
scanf("%lf", &(stud.lab[i]));
printf("Enter marks of test...\n\t");
for( int k = 0; k < m; k++ )
scanf("%lf", &(stud.test[k]));
printf("Enter numbers of space...\n\t");
scanf("%lf", &(stud.numSpace)); }
Можете дополнить мою прогу либо написать свой вариант. Прошу срочно надо на завтра(04.01.2010)
|
|
|

04.01.2010, 11:34
|
|
Новичок
Регистрация: 28.12.2009
Сообщений: 7
Провел на форуме: 119162
Репутация:
0
|
|
Держи код.
Код:
#include<stdio.h>
struct Marks
{ char sur[50], nam[50], pat[50];
double lab[4], test[2];
double numSpace;
};
void main()
{
float res;
int i,n=4,m=2,k;
struct Marks stud;
printf("Enter your full name...\n");
scanf("%s %s %s", stud.sur, stud.nam, stud.pat);
printf("Enter marks of lab...\n");
for(i= 0; i < n; i++ )
scanf("%lf", &(stud.lab[i]));
printf("Enter marks of test...\n");
for(k=0; k < m; k++ )
scanf("%lf", &(stud.test[k]));
printf("Enter numbers of space...\n");
scanf("%lf", &(stud.numSpace));
res = (((stud.lab[0]+stud.lab[1] + stud.lab[2] + stud.lab[3]) / 4) * 0.75) + (((stud.test[0] + stud.test[1]) / 2) * 0.25) - (stud.numSpace * 0.1 * 5);
printf("%f", res);
getchar();
getchar();
}
Работает правда не знаю так ли как ты хотел так что проверь.
|
|
|

05.01.2010, 17:36
|
|
Banned
Регистрация: 24.12.2009
Сообщений: 141
Провел на форуме: 487460
Репутация:
45
|
|
2 n1ghtstalker
дык вставь ввод в матрицу
Код:
int *a;
int razmern;
printf("\r\nВведите размерность матрицы:");
scanf("%d",&razmern);
a=new int[razmern*razmern];
// ввод поэлементно
for(int i=0;i<razmern;i++)
{
for(int j=0;j<razmern;j++)
{
printf("\r\nВведите элемент a[%d][%d]:",i,j);
scanf("%d",&a[i][j]);
}
}
.... тут чивото делай 8)
....
delete[] a; //удаляй массив
|
|
|

05.01.2010, 23:27
|
|
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме: 152084
Репутация:
8
|
|
Сообщение от Retimiled
2 n1ghtstalker
дык вставь ввод в матрицу
ололо ) во первых это надо было не мне
во вторых я давал только комментарий по этому поводу
)) гений ёпт )
|
|
|

05.01.2010, 20:28
|
|
Новичок
Регистрация: 10.04.2009
Сообщений: 26
Провел на форуме: 28153
Репутация:
2
|
|
Ребят помогите плиззз!!!!!!!
надо программку в С++ Builder написать такую: Алгоритм нахождения наибольшего паросочетания в двудольном графе.
За ранее спасибо!)
|
|
|

06.01.2010, 03:26
|
|
Новичок
Регистрация: 09.04.2009
Сообщений: 3
Провел на форуме: 315046
Репутация:
0
|
|
привет. спасайте, ибо начинается сессия, а лаба не сдана..
задание:
1.
квадратичная форма. Написать программу, которая вычисляет квадратичную форму для матрицы A размером n*n и вектора
2.
Реализовать задание с использованием функций. в программе должно быть минимум 2 функции: введение матрицы и осн. алгоритм ее обработки.
спасибо огромное откликнувшимся!!!
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|