Programmeerimise põhikursus keeles C
#67
Отправлено 23 сентября 2010 - 18:11
просто самому чет не въехать пока, а до 30го числа нада сдать домашку + ещё контроша 30го =(
это первый курс первая контроша, первая домашка - надеюсь кто сможет на мысли натолкнуть =)
в файле Из жирного номер 4, из нормального текста тоже номер 4.
если не в ту тему кинул - поправте
Прикрепленные файлы
#68
Отправлено 23 сентября 2010 - 18:21
ftp://demidov.pri.ee/files/INFORMAATIKA1&2.exe
#78
Отправлено 25 марта 2011 - 14:50
А какое задание?
Это: http://www.tud.ttu.e...Zadachi2011.doc
Тут память построчно выделяется
Сообщение изменено: Gangblang (25 марта 2011 - 14:53 )
#80
Отправлено 28 марта 2011 - 16:36
#include <iostream> #include <string> #include <ctime> #include <cstdlib> #include <cstdio> #include <conio.h> using namespace std; const int M = 8, N = 4, MN = M * N; void genereeri(int* m) { for(int k = 0; k < MN; k++) m[k] = (rand() % 200) -100; // -100 .. 100 } void mult_classic(int a[M][N], int b[N][M], int c[M][M]) { for(int i = 0; i < M; i++) // i = ряд матрицы a { for(int j = 0; j < M; j++) // j = столбец матрицы b { int skalaar = 0; for(int k = 0; k < N; k++) { skalaar = skalaar+(*(*(a+j)+k)*(*(*(b+k)+i))); if(k==N-1) { (*(*(c+j)+i))= skalaar; skalaar=0; } } } } } void print(int m[], int elemente, int veerge, string nimetus) { cout << "\n*** " << nimetus << " ***"; for(int i = 0; i < elemente; i++) { if(i % veerge == 0) cout << endl; cout << m[i] << '\t'; } cout << endl; } int main() { int x[M][N], y[N][M], z[M][M]; srand(time(NULL)); // Randomize genereeri(&x[0][0]); genereeri(&y[0][0]); clock_t algus = clock(); mult_classic(x, y, z); cout << float(clock() - algus) / CLOCKS_PER_SEC << " sekundit\n"; print(&x[0][0], M * N, N, "Matrica A"); print(&y[0][0], N * M, M, "Matrica B"); print(&z[0][0], M * M, M, "Matrica C"); }
#81
Отправлено 29 марта 2011 - 22:37
размером N x N (N порядка 400) ... Парни что это значит??? это что матрица может быть и 4*4 или 400*400 ??? это же убйство. Проц ляжет... че за бред??
Почему бред? Ты думаешь для чего компьютеры людям нужны? Только на фейсбуках сидеть?
Матрицы 4х4 можно и на бумажке за две минуты перемножить. Писать прогу для такой простой задачи как минимум глупо.
Сообщение изменено: пудель Смерти (29 марта 2011 - 22:41 )
#83
Отправлено 29 марта 2011 - 23:08
шустро глянул, вроде как все правельно.. только у меня время не отобразилось.. но это легко правится ) тупо в низ строчку вывода поставить..Есть наработка.. может кто проверить?
#include <iostream> #include <string> #include <ctime> #include <cstdlib> #include <cstdio> #include <conio.h> using namespace std; const int M = 8, N = 4, MN = M * N; void genereeri(int* m) { for(int k = 0; k < MN; k++) m[k] = (rand() % 200) -100; // -100 .. 100 } void mult_classic(int a[M][N], int b[N][M], int c[M][M]) { for(int i = 0; i < M; i++) // i = ряд матрицы a { for(int j = 0; j < M; j++) // j = столбец матрицы b { int skalaar = 0; for(int k = 0; k < N; k++) { skalaar = skalaar+(*(*(a+j)+k)*(*(*(b+k)+i))); if(k==N-1) { (*(*(c+j)+i))= skalaar; skalaar=0; } } } } } void print(int m[], int elemente, int veerge, string nimetus) { cout << "\n*** " << nimetus << " ***"; for(int i = 0; i < elemente; i++) { if(i % veerge == 0) cout << endl; cout << m[i] << '\t'; } cout << endl; } int main() { int x[M][N], y[N][M], z[M][M]; srand(time(NULL)); // Randomize genereeri(&x[0][0]); genereeri(&y[0][0]); clock_t algus = clock(); mult_classic(x, y, z); cout << float(clock() - algus) / CLOCKS_PER_SEC << " sekundit\n"; print(&x[0][0], M * N, N, "Matrica A"); print(&y[0][0], N * M, M, "Matrica B"); print(&z[0][0], M * M, M, "Matrica C"); }
http://www.math-pr.com/matr_mul_3.php - этой прогой проверил матрицы 4х4, показало что 1й столбец вообще не правильно считается а 2й посчитался как часы..
Сообщение изменено: lqpac (29 марта 2011 - 23:43 )
IAPB!!
#84
Отправлено 29 марта 2011 - 23:32
-Спроси у Вики.
-Вики, Вики! Как умножать матрицы?
- http://ru.wikipedia....множение_матриц
-А как код сде...
- http://ru.wikipedia....множение_матриц
#85
Отправлено 29 марта 2011 - 23:34
-Гугл, Гугл! Как умножать матрицы?
-Спроси у Вики.
-Вики, Вики! Как умножать матрицы?
- http://ru.wikipedia....множение_матриц
-А как код сде...
- http://ru.wikipedia....множение_матриц
сейчас сижу читаю.. все-равно как лес смотрится..
http://www.math-pr.com/matr_mul_3.php
онлайн считалка.. так кстате можно работоспособность кода поверить
Сообщение изменено: lqpac (29 марта 2011 - 23:35 )
IAPB!!
#86
Отправлено 29 марта 2011 - 23:38
- http://ru.wikipedia....оритм_Штрассена
Сообщение изменено: DeaD_MaN (29 марта 2011 - 23:41 )
#87
Отправлено 29 марта 2011 - 23:41
- Вики! Вики! Я <s>них...</s> не понимаю... И ссылки не вижу.
- http://ru.wikipedia....оритм_Штрассена
смотрел я эти алгоритмы.... не надо так коряво к людям относиться.. это унижает..
IAPB!!
#89
Отправлено 29 марта 2011 - 23:53
#include <iostream> #include <string> #include <ctime> #include <cstdlib> #include <cstdio> #include <conio.h> using namespace std; const int M = 2, N = 2, MN = M * N; void genereeri(int* m) { for(int k = 0; k < MN; k++) m[k] = (rand() % 200) -100; // -100 .. 100 } void mult_classic(int a[M][N], int b[N][M], int c[M][M]) { for(int i = 0; i < M; i++) // i = ряд матрицы a { for(int j = 0; j < N; j++) // j = столбец матрицы b { int skalaar = 0; for(int k = 0; k < N; k++) { skalaar = skalaar+(*(*(a+j)+k)*(*(*(b+k)+i))); if(k==N-1) { (*(*(c+j)+i))= skalaar; skalaar=0; } } } } } void print(int m[], int elemente, int veerge, string nimetus) { cout << "\n*** " << nimetus << " ***"; for(int i = 0; i < elemente; i++) { if(i % veerge == 0) cout << endl; cout << m[i] << '\t'; } cout << endl; } int main() { int x[M][N], y[N][M], z[M][M]; srand(time(NULL)); // Randomize genereeri(&x[0][0]); genereeri(&y[0][0]); float algus = clock(); mult_classic(x, y, z); print(&x[0][0], M * N, N, "Matrica A"); print(&y[0][0], N * M, M, "Matrica B"); print(&z[0][0], M * M, M, "Matrica C"); cout << float(clock() - algus) / CLOCKS_PER_SEC << " sekundit\n"; }
Да ни сколько я не хотел унижать. Просто у меня в голове не складывается, как можно быть на ИТ факультете и не уметь пользоватся гуглом в таких элементарных случаях.
а кто сказал что я гуглом не пользовался и вообще не умею им пользоваться?.. + кому то элементарщина, а кто то с мартицами вообще никогда не работал..
Сообщение изменено: lqpac (30 марта 2011 - 00:32 )
IAPB!!