Programiranje u C-u - od svega pomalo izdvojena tema

poruka: 1.661
|
čitano: 331.630
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
10 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

for petlja mora ici od prvog do zadnjeg broja, a ne od 100 do 999.

kad uzimas znamenke, uzimas od zadnje prema prvoj i uvijek dijelis s 10, znaci:

 

treca=pom2%10

pom2=pom2/10

druga=pom2%10

...

 

ako ti nije jasno, uvijek mozes ispisati brojeve u svakom koraku da vidis sto se događa.

8 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Imam pitanje vezano za bitwise operatore.

Ovo mi je jasno:

https://en.wikipedia.org/wiki/Bitwise_operations_in_C

 

no nije mi jasno ovo:

 

WNDCLASS Window = {};

Window.style = CS_OWNDC|CS_HREDRAW|CS_VREDRAW;

 

prema MSDN-u:

CS_OWNDC - Allocates a unique device context for each window in the class.

CS_HREDRAW -Redraws the entire window if a movement or size adjustment changes the width of the client area.

CS_VREDRAW - Redraws the entire window if a movement or size adjustment changes the height of the client area.

 

Koji datatype su ti CS_žbčkdsfj?

Nije mi jasno kako se mogu uspoređivati te varijable sa or operatorom i da to onda utjece na Windows.stylev :/

 

EDIT:

 

Oke malo sam se posluzio debuggerom:

 

int val = CS_OWNDC;
int val2 = CS_HREDRAW;
int val3 = CS_VREDRAW;

 

Pomoc Watch Windowa (<3) u vs kaze:

 

Window.Style = 0b00000000000000000000000000100011

val = 0b00000000000000000000000000100000

val2 = 0b00000000000000000000000000000010

val3 = 0b00000000000000000000000000000001

 

^^^^ Kuzim, 3 vrijednosti se ORaju i dobi se neka vrijednost za Windows.style, al dalje me zanima koji je datatype CS_nesto, i posto ORanje vise tih CS_nesto utjece na promjenu vrijednosti Window.style dali je za svaku vrijednost mogucu tada određeno sto ce Windows.style raditi ? i kako? jer moze biti nesto kao:

 

Windows.style = CS_OWNDC|CS_HREDRAW|CS_VREDRAW|CS_OVO|CS_ONO|CS_TRECE|CS_PANESTOCETVRTO;

 

A ako je npr. CS_VREDRAW - Redraws the entire window if a movement or size adjustment changes the height of the client area

Tada to svojstvo kad napisemo kao gore mu primjenjujemo (Windows.style-u), i sada bi mi bilo logicki da je za svaki taj CS_NESTO postoji Windows.styleN (N = broj), npr:

 

Windows.style1 = CS_OWNDC;

Windows.style2 = CS_HREDRAW;

Windows.style3 = CS_VREDRAW;

 

I tako se onda zna vrijednost za svaki Windows.styleN, I pomocu tih vrijednosti bi se kreirala svojstva za Window

 

n = 10 // broj styleova

for(int i = 0; i == n; i++)

{

   if(Window.style[i] == 1) // Window.style[i] == CS_VREDRAW jer je CS_VREDRAW = 00000001, tj 1

{

   // Kod za Redraw the entire window if a movement or size adjustment changes the height of the client area

}

else if(Window.style[i] == 2) I TAKO DALJE.....

}

 

Nadam se da se ne gubim previse i da je ljudima dovoljno jasno sto hocu reci.

Ovo gore mi je nekako logicno, naravno ne kako bi to stvarno igledalo da je to tako nego onak to sam samo na brzinu

da vidite što bi mi bilo jasnije,  e sad dok je:

 

Windows.style = CS_OWNDC|CS_HREDRAW|CS_VREDRAW|CS_OVO|CS_ONO|CS_TRECE|CS_PANESTOCETVRTO;

 

sad mi nije jasno jer kako provjerava koja svojstva zelimo za Windows.style ak moze ORati te CS_ove i tada Windows.style moze biti dosta raznih vrijednosti :/

Poruka je uređivana zadnji put sub 6.2.2016 14:38 (brufly).
 
0 0 hvala 0
14 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Mislim da se trebas spustit dosta low za razumit sto se tu tocno postize. Nisam bas programira windows aplikacije, ali nesto slicno sam vidia u assembleru.

CS_* - to oznacava konstantu. Iz prikazanog, svaka konstanta predstavlja tocno 1 bit.  To se jos zovu kao zastavice, (engl. flags). 

I sad OR-anjem razlicitih konstanti ti kontroliras odabir.

 

Evo jedan dobar primjer. Zamisli da kontroliras semafor. Semafor ima 3 svijetla, i neka nam to budu bitovi. Znaci radit cemo s 3 - bitnim binarnim brojevima.

binarno 001 = dekadsko 1 => R (red)

binarno 010 = dekadsko 2 => Y (yellow)

binarno 100 = dekadsko 4 => G (green)

 

I recimo to su nase 3 konstante, i njihovim kombiniranjem upravljamo stanjem semafora, nazovimo ga S = 000 (nek je ugasen).

 

I sad kombiniras:

S = R -> crveno je
S = R|Y -> crveno i zuto
S = G -> zeleno

 

E sad ti tu imas integer, znaci 32-bitne brojeve. Znaci teoretski mozes imat 32 zastavice, odnosno u tom slucaju one prestavljaju style-ove , nekakva svojstva.

I radi jednostavnosti, imas tu neku glavnu varijablu Window.style i nju samo trpas sto ti treba.

 

Nadan se da sam ti pojasnia princip, ako sam ja dobro shvatia o cemu se tu radi :D. 

 

Inace operacije s bitovima su "najjeftinije", procesor ih izvodi u najmanje vremena, i vjerojatno su radi performansi i stednje memorije koristili ovaj princip.

 

 

 

Moj PC  
0 0 hvala 1
8 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Aha znaci svaki flag je jedan binarni broj koji ima samo jednu 1, i dvije zastavice nemogu imati 1 na isto mjestu u binarnom broju te tako OR operatorom se broj mjenja broj Windows.style varijable i ovisno o tome na kojem mjestu su 1 u binarnoj vrijednosti Windows.style aktivira zeljene zastavice?

Ako je tako onda definitivno kuzim i ima dosta smisla
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
brufly kaže...
Aha znaci svaki flag je jedan binarni broj koji ima samo jednu 1, i dvije zastavice nemogu imati 1 na isto mjestu u binarnom broju te tako OR operatorom se broj mjenja broj Windows.style varijable i ovisno o tome na kojem mjestu su 1 u binarnoj vrijednosti Windows.style aktivira zeljene zastavice?

Ako je tako onda definitivno kuzim i ima dosta smisla

 Da, svaka zastavica predstavlja potenciju broja 2, tj ima samo jednu jedinicu u svom binarnom zapisu (svaka zastavicu na razlicitom mjestu, inace nebi imalo smisla). A kombiniranjem zastavica, Windows.style ce biti neki broj koji onda predstavlja koje zastavice su dignute.

8 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Da, kuzim, hvala :)
 
1 0 hvala 0
8 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Ako može neko pomoći naime ne mogu tačno da nađem koji su SLOŽENI TIPOVI PODATAKA  za C jezik pa ako neko znam molio bi ga da mi pomogne!!

 
1 0 hvala 0
9 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Koji IDE da koristim za programiranje za pocetak u C-u, a kasnije u C++,cuo sam da je Dev Cpp zastario,a njemu sam najvise radio u skoli pa bi mi nekako najvise odgovarao..inace,pocetnik sam u programiranju

Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
fizicar1 kaže...

Koji IDE da koristim za programiranje za pocetak u C-u, a kasnije u C++,cuo sam da je Dev Cpp zastario,a njemu sam najvise radio u skoli pa bi mi nekako najvise odgovarao..inace,pocetnik sam u programiranju

 Ja vec neko vrijeme nisan radio u C/C++ nista ozbiljnije, ali bi me isto zanimalo koji su trenutno najbolji posto cu pocet uskoro.

Trenutno imam instaliran Visual Studio 2013, Code::Blocks i Dev-Cpp. Ja mislim da je Code Blocks skroz super, pogotovo za pocetnika.

 

P.S. jel se isplati skidat novi VS? Jel postoji neka velika razlika?

Poruka je uređivana zadnji put pon 8.2.2016 21:42 (Neutral).
9 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Evo upravo sam si stavio Dev Cpp i dobro funkcionira,za sad .. :)

Moj PC  
1 0 hvala 0
8 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Možete li mi pomoci oko zadatka? :/
Napisati program u kojem treba:
• definisati tip VB kojim se reprezentuje veliki
nenegativan celi broj koji može da ima do 100 cifara.
• definisati funkciju koja sa standardnog ulaza učitava
veliki broj, a čiji je prototip:
void citaj(VB *broj);
• definisati funkciju koja računa kvadrat velikog broja,
a čiji je prototip:
void kvadrat(VB *broj, VB *rezultat);
• definisati funkciju koja na standardni izlaz ispisuje
veliki broj (bez vodećih nula), a čiji je prototip:

void pisi(VB *broj);
• u glavnom programu:
 učitati prirodan broj n, a zatim n velikih brojeva i
formirati odgovarajući dinamički niz,
 ispisati učitani niz velikih brojeva kao i njihove
kvadrate.
Primer izvršavanja programa:
n=3
1. broj: 5
2. broj: 123456789
3. broj: 111111111111111
--------------------------------------------------
Rezultat:
kv(5)=25
kv(123456789)=15241578750190521
kv(111111111111111)=12345679012345654320987654321

 
0 0 hvala 0
10 godina
offline
Re: Programiranje u C-u - od svega pomalo
shyshy123 kaže...

Možete li mi pomoci oko zadatka? :/
Napisati program u kojem treba:
• definisati tip VB kojim se reprezentuje veliki
nenegativan celi broj koji može da ima do 100 cifara.
• definisati funkciju koja sa standardnog ulaza učitava
veliki broj, a čiji je prototip:
void citaj(VB *broj);
• definisati funkciju koja računa kvadrat velikog broja,
a čiji je prototip:
void kvadrat(VB *broj, VB *rezultat);
• definisati funkciju koja na standardni izlaz ispisuje
veliki broj (bez vodećih nula), a čiji je prototip:

void pisi(VB *broj);
• u glavnom programu:
 učitati prirodan broj n, a zatim n velikih brojeva i
formirati odgovarajući dinamički niz,
 ispisati učitani niz velikih brojeva kao i njihove
kvadrate.
Primer izvršavanja programa:
n=3
1. broj: 5
2. broj: 123456789
3. broj: 111111111111111
--------------------------------------------------
Rezultat:
kv(5)=25
kv(123456789)=15241578750190521
kv(111111111111111)=12345679012345654320987654321

nisam vidio funkciju >.< ..

 

 

 

Sometimes the best gift is the gift of never seeing you again.[121119962015]
Poruka je uređivana zadnji put sri 10.2.2016 22:00 (res03pem).
11 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Jel moze neko pogledat kod, nakon free() program crasha, uglavnom citam unos i spremam ga u string kojeg poslije parsiram, al izgleda nesto sam nesto zeznuo sa alokacijom.

 

int unosUBuffer(char *tmpBuffer,int spaceCounter)
{
 int i=0;
 int input=' ';

do 
 {
 input=getchar();

 if(input==' ') 
 {
 spaceCounter++; 
 }
 tmpBuffer=(char*)realloc(tmpBuffer,(sizeof(char))*i+1);
 tmpBuffer[i]=input;
 i++; 
}while(tmpBuffer[i-1]!='\n');
 tmpBuffer[i-1]='\0';

 return spaceCounter;
}

 

int main()
{
 int spaceCounter=0;
 char *tmpBuffer;
 char *line;
 //char **commandLine;

 tmpBuffer=(char*)malloc(sizeof(char)); 

 welcomeScreen(); 

 spaceCounter=unosUBuffer(tmpBuffer,spaceCounter);
 printf("\n space counter = %d",spaceCounter);

free(tmpBuffer);

return 0;

}

 

Debugger zapne na ovom

/*
* If this ASSERT fails, a bad pointer has been passed in. It may be
* totally bogus, or it may have been allocated from another heap.
* The pointer MUST come from the 'local' heap.
*/
_ASSERTE(_CrtIsValidHeapPointer(pUserData));

 
0 0 hvala 0
8 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

Takav zadatak bio na ispitu..

 

14 godina
offline
Programiranje u C-u - od svega pomalo

Recimo da nepostoje driveri za moj touchpad na Linuxu, mogu li ih sam isprogramirati? Gdje početi i koliko znanja treba?

 

You have to be odd to be number one
Moj PC  
0 0 hvala 0
10 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

sve se može kad se hoće i ima dovoljno dokumentacije

za nekog tko ne zna kodirat treba ipak "malo" više znanja od "hello world"-a pa je teško reći uopće od kud početi

 

kako je dug put do toga, možda najbolje za početak uzet arduino pločicu i lcd-ove ili nešto slično pa počet pisat drivere za takve stvari (iako naravno već postoje gotovi)

nakon tog vjerojatno nemaš ni pol posto znanja za ostatak problema, ali eto od tud se može početi

Poruka je uređivana zadnji put sub 20.2.2016 14:12 (pcserver).
Moj PC  
0 0 hvala 1
9 godina
offline
Programiranje u C-u - od svega pomalo

Imam jedan problem,znači u visual studio idem na Visual c++.zatim win 32 console application,i tu pišem kodove ,e sad problem je što nekad 

nakon što idem na start without debugging mi se program ne pokrene svaki put,i sad kad uspijem sredit (restartam komp,idem new project par puta,nezz vise ni sam sta ne ) pokrene mi pogram i onda radi sve super dok ne ugasim visual studio

,nakon što ugasim pa upalim visual opet ne želi pokrenit program ,jel zna netko u čem bi mogao biti problem?

Moj PC  
0 0 hvala 0
10 godina
offline
Re: Programiranje u C-u - od svega pomalo

Jel' ti izbacuje kakvu grešku, poruku?

Panzerkampfwagen.Unatoč svemu - Dinamo Zagreb.
9 godina
offline
Programiranje u C-u - od svega pomalo

eo skuzio sam da je do avasta ,e sad zašto ne znam ,znači kad ga isključim radi sve normalno :D

Moj PC  
1 0 hvala 0
12 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

someguy :

 

int input = ' ' ; -> ovo

 

 tmpBuffer=(char*)realloc(tmpBuffer,(sizeof(char))*i+1);  -> šta u slučaju i = 0? fale zagrade?
 tmpBuffer[i]=input; - tmpBuffer je adresa , fali *  , input je int,  tmpBuffer je pokazivac na char

Poruka je uređivana zadnji put sri 9.3.2016 16:54 (Ajmodaj).
Moj PC  
0 0 hvala 0
9 godina
offline
Programiranje u C-u - od svega pomalo

int main() {
int m, n, k, i, j;
int p1[10][10];
int p2[10][10];
int p3[10][10];

do {
printf("Unesi dimenzije matrice p1 n x m ");
scanf("%d,%d", &n, &m);
} while (n < 1 || n>10 || m < 1 || m>10);
do {
printf("Unesi dimenzije matrice p2 m x k ");
scanf("%d", &k);
} while (k < 1 || k>10 );
printf("Ucitaj vrijednosti matrice p1\n");
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
printf("p1[%d][%d]=", i, j);
scanf("%d", &p1[i][j]);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("p1[%d][%d]=%d\t", i, j, p1[i][j]);
}
printf("\n");
}

printf("Ucitaj vrijednosti matrice p2\n");
for (i = 0; i < m; i++)
for (j = 0; j < k; j++)
{
printf("p2[%d][%d]=", i, j);
scanf("%d", &p2[i][j]);
}

for (i = 0; i < m; i++)
{
for (j = 0; j < k; j++)
{
printf("p2[%d][%d]=%d\t", i, j, p2[i][j]);
}
printf("\n");
}

for (i = 0; i < n; i++)
for (j = 0; j < k;j++)

return 0;
}

 

 

Kako da napravim još umnožak matrica?

Moj PC  
0 0 hvala 0
14 godina
offline
Programiranje u C-u - od svega pomalo

Imam sljedeći dio koda:

 

#include <malloc.h>

#include <stdlib.h>

#include <stdio.h>

int main(void) {
 short *i;
 int b=3233;
 i = (short *) malloc (sizeof(short));
 printf("Lokacija i: %p Lokacija b: %p \n",i,&b);
*i=121;
 printf("%d %d",*i, b);
 free ((void *) i);
return 0;
}

 

Kako je pointer smješten u memoriji (jer ipak mora sadržavati i podatak o tome na što pokazuje)?

Zanima me zašto pri svakom pokretanju programa i bude smješten na različitu adresu, a b uvijek na istu?

Što se to odvija u pozadini da čini razliku?

 

Hvala!

You have to be odd to be number one
Moj PC  
0 0 hvala 0
10 godina
offline
Re: Programiranje u C-u - od svega pomalo

@polymer1234

Znači, ovako frende.

Da bi dobio produkt matrica moraš množiti elemente jednog retka matrice, sa elementima stupca druge matrice, te ih onda sve zbrojiš.

Tj, Umnozak+=matA[i][j]*matB[j][i]

 

Varijabla k je broj redaka matrica A, odnosno broj stupaca matrice B. Broj redaka jedne matrice mora biti jednak broju stupaca druge matrice. To je i uvjet da ih možemo pomnožiti.

 

Dio koda:

 

for(i = O; i < k; i++){

        for(j=0; j < k; j++){

                 umnozak+= matA[i][j] * matB[j][i];

                             }

                      }

Panzerkampfwagen.Unatoč svemu - Dinamo Zagreb.
12 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Top Bugovac kaže...

Imam sljedeći dio koda:

 

#include <malloc.h>

#include <stdlib.h>

#include <stdio.h>

int main(void) {
 short *i;
 int b=3233;
 i = (short *) malloc (sizeof(short));
 printf("Lokacija i: %p Lokacija b: %p \n",i,&b);
*i=121;
 printf("%d %d",*i, b);
 free ((void *) i);
return 0;
}

 

Kako je pointer smješten u memoriji (jer ipak mora sadržavati i podatak o tome na što pokazuje)?

Zanima me zašto pri svakom pokretanju programa i bude smješten na različitu adresu, a b uvijek na istu?

Što se to odvija u pozadini da čini razliku?

 

Hvala!

Varijable i i b su statičke varijable te se kao takve nalaze na stogu. Zbog redoslijeda kojim se statički objekti stavljaju na stog vrlo jednostavno se dogodi da će program te objekte uvijek staviti na iste adrese. Međutim, pokazivač i kao vrijednost ima adresu koja se dinamički alocira, a ta adresa nije na stogu već na heapu. Tu je već puno manja vjerojatnost da će alocirana memorija uvijek biti na istoj adresi jer je heap (RAM) puno veći od stog-a koji je velik svega oko 1 MB. Usto, neki dijelovi memorije su možda već zauzeti od strane drugog procesa pa će malloc svaki sljedeći put naći neku drugu adresu gdje će alocirati memoriju.

16 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
PzKpfw kaže...

@polymer1234

Znači, ovako frende.

Da bi dobio produkt matrica moraš množiti elemente jednog retka matrice, sa elementima stupca druge matrice, te ih onda sve zbrojiš.

Tj, Umnozak+=matA[i][j]*matB[j][i]

 

Varijabla k je broj redaka matrica A, odnosno broj stupaca matrice B. Broj redaka jedne matrice mora biti jednak broju stupaca druge matrice. To je i uvjet da ih možemo pomnožiti.

 

Dio koda:

 

for(i = O; i < k; i++){

        for(j=0; j < k; j++){

                 umnozak+= matA[i][j] * matB[j][i];

                             }

                      }

 Ne možemo tako, jer smo onda jedan red prve matrice množili sa samo jednim stupcem druge matrice a trebamo jedan red prve matrice množiti sa svim stupcima druge matrice.

To je ogledni primjerak množenja i reda prve matrice sa i stupcem druge matrice.

 

Ako imamo treći red prve matrice ne znači da imamo i treći stupac druge matrice da bi ih mogli množiti, jedinu poveznicu koju moramo imati je broj stupaca prve matrice i broj redova druge matrice.

Uz to, moramo svaki red prve matrice množiti sa svakim stupcem druge matrice a rezultat staviti na odgovarajuće mjesto u matricu koja nam je rezutat množenja.

Ako množimo prvi red prve matrice sa drugim stupcem druge matrice, rezultat se nalazi na prvom redu i drugom stupcu  matrice koja je rezulztat množenja.

To nas dovodi do zakjučka da matrica koja je rezultat množenja ima broj redova prve matrice a broj stupaca druge matrice, što je matematički ispravno.

 

#include<iostream>

using namespace std;

int main()
{
   const int redA = 2;
   const int stupacA = 3;
   const int stupacB = 2;
   int A[redA][stupacA] = { {1,2,3},{4,5,6} };
   int B[stupacA][stupacB] = { {7,8},{9,10},{11,12} };
   int C[redA][stupacB] = { {0,0},{0,0} };
   int suma = 0;


   for (int i = 0; i < redA; i++)
   {
      for (int j = 0; j < stupacB; j++)  
         for (int k = 0; k < stupacA; k++)  
            C[i][j] += A[i][k] * B[k][j];
   }

   for (int i = 0; i < redA; i++)
   {
      for (int j = 0; j < stupacB; j++)
         cout << C[i][j] << " ";
      cout << endl;
   }
   
   return 0;
}

Poruka je uređivana zadnji put pon 14.3.2016 21:43 (Floki).
16 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Inače, kad sam se već uhvatio toga da stavim i rješenje kvadratne složenosti.

Vanjska petlja broji elemente matrice koja je rezultat množenja, a unutarnja je dubina reda prve po stupcima i stupca druge po redovima.

 

#include<iostream>

using namespace std;

int main()
{
   const int redA = 2;
   const int stupacA = 3;
   const int stupacB = 2;
   int A[redA][stupacA] = { {1,2,3},{4,5,6} };
   int B[stupacA][stupacB] = { {7,8},{9,10},{11,12} };
   int C[redA][stupacB] = { {0},{0}};
   int brojElemenata = redA * stupacB;


   for (int i = 0; i < brojElemenata; i++)
      for (int j = 0; j < stupacA; j++)
         C[i / stupacB][i%stupacB] += A[i / stupacB][j] * B[j][i%stupacB];

   for (int i = 0; i < redA; i++)
   {
      for (int j = 0; j < stupacB; j++)
         cout << C[i][j] << " ";
      cout << endl;
   }
   
   return 0;
}

 
0 0 hvala 0
9 godina
offline
Programiranje u C-u - od svega pomalo

Evo ja sam ovak napravio 

 

 

 

int i, j, n, m, k, p;
float A[10][10], B[10][10], C[10][10];
do
{
printf("Unesite broj redaka prve matrice (2<=n<=10): ");
scanf("%d", &n);
} while (n<2 || n>10);
do
{
printf("Unesite broj stupaca prve matrice (2<=m<=10): ");
scanf("%d", &m);
} while (m<2 || m>10);
do
{
printf("Unesite broj stupaca druge matrice (2<=k<=10): ");
scanf("%d", &k);
} while (k<2 || k>10);
printf("Unesite elemente prve matrice:\n");
for (i = 0; i<n; i++) {
for (j = 0; j<m; j++)
{
printf("A[%d][%d]=", i, j);
scanf("%f", &A[i][j]);
}

}
printf("Unesite elemente druge matrice:\n");
for (i = 0; i<m; i++) {
for (j = 0; j<k; j++)
{
printf("B[%d][%d]=", i, j);
scanf("%f", &B[i][j]);
}
}
printf("MATRICA A:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
printf("A[%d][%d]=%f\t", i, j, A[i][j]);
}
printf("\n");
}
printf("MATRICA B:\n");
for (i = 0; i<m; i++) {
for (j = 0; j<k; j++)
{
printf("B[%d][%d]=%f\t", i, j, B[i][j]);
}
printf("\n");
}
for (i = 0; i<n; i++) {
for (j = 0; j<k; j++)
{
C[i][j] = 0;
for (p = 0; p<m; p++)
C[i][j] += A[i][p] * B[p][j];
}
}
printf("Produkt matrica:\n");
for (i = 0; i<n; i++)
{
for (j = 0; j<k; j++)
printf("%8.2f ", C[i][j]);
printf("\n");
}

return 0;
}



Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

To je to, kao u mojoj prvoj inačici, treća petja služi za šetanje po dubini redova prve matrice i po dubini stupova druge matrice, a prve dvije petlje za određivanje elemenata u matrici rezultat.

Jedino što imam zamjerku, da iz imena varijabli volim vidjeti logiku programa.

 
0 0 hvala 0
8 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo
  1. 1)Napisati program koji formira matricu dimenzije mx n čije elemente bira slučajnim izborom brojeva od 0 do 9. Izračunati sumu parnih elemenata, i prebrojati koliko je elemenata jednako nuli, pa zatim prikazati matricu i dobijene rezultate.
  2. 2)Napisati funkciju koja dati string s skraćuje na podstring od prvih p znakova.
  3. Da li neko zna kako da uradim ovo.
 
1 0 hvala 0
14 godina
offline
Programiranje u C-u - od svega pomalo

Pozdrav,

 

Zapeo sam u jednom zadatku pa ako može pomoć. Zadatak treba napraviti točno po uputama inače se ne priznaje, dakle baš onim funkcijama koje su navedene..

Zadatak je u slici, a evo koda:

 

#include<stdio.h>

void main()
{
 int a, b, n, i, j;
 do
 {
  printf("Unesite 2 cijela broja (1-100): ");
  scanf("%d %d", &a, &b);
 }
 while(a <= 0 || a >= 100 || b <= 0 || b >= 100);

 printf("Unesite broj stupaca: ");
 scanf("%d", &n);

 if(a < b)
 {
  for(i=0; a<b; i++) //redci
  {
  for(j=0; j<n; j++) //stupci
  {
   if(a<b)
    printf("%c ", a++);
  }
  printf("\n");
  }
 }
 else
 {
  for(i=0; a>b; i++) //redci
  {
  for(j=0; j<n; j++) //stupci
  {
   if(a>b)
    printf("%c ", a--);
  }
  printf("\n");
  }
 }

/*
int znamenke, malaSlova, velikaSlova, ostalo;
znamenke = malaSlova = velikaSlova = ostalo = 0;
if (a >= 48 && b <= 57)
   znamenke++;
if (a >= 97 && b <= 122)
   malaSlova++;
if (a >= 65 && b <= 90)
   velikaSlova++;
if (a > 0 && b < 48)
   ostalo++;
if(znamenke > 0)
   printf("Znamenki: %d", znamenke);
if(malaSlova > 0)
   printf("Malih Slova: %d", malaSlova);
if(velikaSlova > 0)
   printf("Velikih Slova: %d", velikaSlova);
if(ostalo > 0)
   printf("Ostalih Znakova: %d", ostalo);
*/
}

Zadnji dio ne znam kako bih izveo Zadnji dio ne znam kako bih izveo
Moj PC  
1 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice