Pokaż wyniki od 1 do 7 z 7
dodawanie, mnożenie macierzy w C
  1. #1
    Świeżak
    Dołączył
    22.12.2008
    Posty
    5
    Wątków
    2
    Siła reputacji
    7

    Domyślnie dodawanie, mnożenie macierzy w C

    Witam bardzo proszę o pomoc w stworzeniu programu który dodaje do siebie dwie macierze i losuje do nich liczby. A drugi który mnoży macierze. W języku C. Z góry wielkie, wielkie dzięki.

  2. #2
    Precylowiczka Awatar kaska87
    Dołączył
    17.03.2008
    Mieszka w
    Szczerców-Piotrków-Łódź
    Posty
    567
    Wątków
    7
    Siła reputacji
    16

    Domyślnie Odp: dodawanie, mnożenie macierzy w C

    Po krótce szkielet programu.
    -biblioteki
    -losowanie macierzy
    -wyswietlenie wylosowanych macierzy (opcjonalnie)
    -mnożenie/dodawanie macierzy
    -wyswietlenie wyniku
    no to tak bardzo schematycznie i technicznie
    szukam, poszukuję...

  3. #3
    Aktywny Użytkownik Awatar matek3005
    Dołączył
    19.10.2008
    Posty
    363
    Wątków
    3
    Siła reputacji
    11

    Domyślnie Odp: dodawanie, mnożenie macierzy w C

    standard:
    1. Jakiej pomocy oczekujesz?
    2. Pokaż co już zrobiłeś.

  4. #4
    Świeżak
    Założyciel Tematu

    Dołączył
    22.12.2008
    Posty
    5
    Wątków
    2
    Siła reputacji
    7

    Domyślnie Odp: dodawanie, mnożenie macierzy w C

    1. Dodawanie macierzy z losowanymi do nich liczbami

    Kod:
    #include<stdio.h>
    main()
    {
    int tabA[10][10];
    int tabB[10][10];
    int tabC[10][10];
    int i,j,x,y;
    
    printf("Wprowadz wielkosc macierzy: \n"); 
                   scanf("%i%i",&x,&y);
    srand((int) time(0));
    
         for(i=0; i<x; i++){
          for(j=0; j<y; j++){ 
                   tabA[i][j]=rand()%10;
           }
          }     
          for(i=0; i<x; i++){
            for(j=0; j<y; j++){ 
                   tabB[i][j]=rand()%10;
            }
          }
          
     printf("\nMacierz A: \n");     
    for(i=0; i<x; i++)
    {
             printf("\n");
            for(j=0; j<y; j++)
            { 
            printf("%i ",tabA[i][j]);
    
            }
    }
    
     printf("\n\nMacierz B: \n");     
    for(i=0; i<x; i++)
    {
             printf("\n");
            for(j=0; j<y; j++)
            { 
            printf("%i ",tabB[i][j]);
    
            }
    }   //DODAWANIE
         for(i=0; i<x; i++)
            for(j=0; j<y; j++)
            {
                tabC[i][j]=0;
                tabC[i][j]=tabA[i][j]+tabB[i][j];
            }
        printf("\n\nMacierz C: \n");     
    for(i=0; i<x; i++)
    {
             printf("\n");
            for(j=0; j<y; j++)
            { 
            printf("%i ",tabC[i][j]);
    }
            }
    getch();
    }
    co o tym sądzicie? jak można zrobić to inaczej? a na mnożenie nie mam pomysłu

  5. #5
    Aktywny Użytkownik Awatar matek3005
    Dołączył
    19.10.2008
    Posty
    363
    Wątków
    3
    Siła reputacji
    11

    Domyślnie Odp: dodawanie, mnożenie macierzy w C

    Cytat Zamieszczone przez sernik333 Zobacz posta
    Kod:
    #include<stdio.h>
         for(i=0; i<x; i++){
          for(j=0; j<y; j++){ 
                   tabA[i][j]=rand()%10;
           }
          }     
          for(i=0; i<x; i++){
            for(j=0; j<y; j++){ 
                   tabB[i][j]=rand()%10;
            }
          }
    Dlaczego masz 4 pętle? Nie możesz tego wrzucić do dwóch?

    Cytat Zamieszczone przez sernik333 Zobacz posta
    Kod:
         for(i=0; i<x; i++)
            for(j=0; j<y; j++)
            {
                tabC[i][j]=0;
                tabC[i][j]=tabA[i][j]+tabB[i][j];
            }
    Jaki sens ma zerowanie tabC skoro zaraz po tym przypisujesz nową wartość?

    Jaki problem masz z mnożeniem macierzy? Czego nie rozumiesz?

  6. #6
    Świeżak
    Założyciel Tematu

    Dołączył
    22.12.2008
    Posty
    5
    Wątków
    2
    Siła reputacji
    7

    Domyślnie Odp: dodawanie, mnożenie macierzy w C

    Cytat Zamieszczone przez matek3005 Zobacz posta
    Dlaczego masz 4 pętle? Nie możesz tego wrzucić do dwóch?


    Jaki sens ma zerowanie tabC skoro zaraz po tym przypisujesz nową wartość?
    To jak by to teraz wyglądało? Szczerze z programowania jestem zielony a murze to ogarnąć do szkoły na week...

  7. #7
    Aktywny Użytkownik Awatar matek3005
    Dołączył
    19.10.2008
    Posty
    363
    Wątków
    3
    Siła reputacji
    11

    Domyślnie Odp: dodawanie, mnożenie macierzy w C

    Cytat Zamieszczone przez sernik333 Zobacz posta
    To jak by to teraz wyglądało? Szczerze z programowania jestem zielony a murze to ogarnąć do szkoły na week...
    Pomyśl logicznie co piszesz
    Kod:
        for(i=0; i<x; i++){
          for(j=0; j<y; j++){ 
                   tabA[i][j]=rand()%10;
           }
          }     
          for(i=0; i<x; i++){
            for(j=0; j<y; j++){ 
                   tabB[i][j]=rand()%10;
            }
          }
    Masz tutaj 4 pętle ( po dwie zagnieżdżone ) dlaczego losowania tabB nie wrzucisz do pętli razem z losowaniem tabA tylko robisz osobne pętle? To jest bezsens w tym wypadku skoro tablice mają te same rozmiary. Nie podam ci gotowego rozwiązania bo tutaj chodzi o to żebyś sam to zrozumiał.
    W drugim cytowanym przeze mnie kawałku kodu zerujesz element tablicy, a potem od razu przypisujesz mu wartość. Po co zerujesz skoro zaraz po tym i tak wpisujesz wartość? To jest puste przypisanie nic nie wnoszące do rozwiązania problemu. Poza tym zerować tablicę możesz bez pętli inicjalizując ją
    np
    Kod:
    int tab[ 2 ][ 2 ] = { 0 };
    i w tedy masz pewność, że tablica jest wyzerowana.