banjalukaforum.com

Dobrodošli na banjalukaforum.com
Danas je 28 Mar 2024, 22:35

Sva vremena su u UTC [ DST ]




Započni novu temu Odgovori na temu  [ 4 Posta ] 
Autoru Poruka
 Tema posta: Zadatak iz C-a
PostPoslato: 21 Jun 2012, 13:08 
OffLine
Voajer
Voajer

Pridružio se: 05 Jul 2010, 22:12
Postovi: 6
Napisati program koji ucitava kvadratnu matricu dimenzija nxn (n<10), ciji su elementi realni brojevi.
Potom treba ispisati matricu koja sadrzi samo cijele dijelove brojeva ucitane matrice te matriu koja sadrzi samo decimalne dijelove brojeva ucitane matrice.

Za ucitavanje matrice treba definisati i koristiti funkciju ciji je prototip
void citaj(float mat [10][10], int *n);
Za odgovarajuci ispis matrice treba definisati i koristiti funkciju ciji je prototip
void pisi(float mat [10][10], int n, char c);
gdje c='C' znaci da treba ispisati cijele dijelove, a c='D' znaci da treba ispisati decimalne dijelove elemenata matrice. Za neku drugu vrijednost c (razlicitu od 'C' i 'D') treba ispisati originalni element matrice.

ja sam uradio neki kod ali mi ne prolazi tj kada ga pokrenem izbaci mi kresku kod poziva funkcije tacnije:
cannot convert `float' to `float (*)[10]' for argument `1' to `void citaj(float (*)[10], int*)'

kod koji sam napisao :

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define max 10
void citaj(float mat[10][10], int *n)
{
int i,j;
for(i=0;i<*n;i++)
for(j=0;j<*n;j++)
{printf("Unesite [%d][%d]. element", i+1, j+1);
scanf("%f",&mat[i][j]);}
};
void pisi(float mat[10][10], int n, char c)
{
int i,j;
if(c=='C')
{
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%4.1f",floor(mat[i][j]));
printf("\n");}}
else
if(c=='D')
{
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("1.4f",mat[i][j]-floor(mat[i][j]));
printf("\n");}}
else
{
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("4.2f",mat[i][j]);
printf("\n");}}}
main()
{
int dim;
float mat[10][10];
char c;
printf("unesite znak");
scanf("%c",&c);
do
{
printf("Unesi dimenzije matrice");
scanf("%d",&dim);}
while((dim<1)&&(dim>10));
citaj(mat[10][10],dim);
pisi(mat[10][10],dim,c);
system("pause");
}


Vrh
 Profil  
 
 Tema posta: Re: Zadatak iz C-a
PostPoslato: 21 Jun 2012, 18:21 
OffLine
Stara kuka
Stara kuka
Korisnikov avatar

Pridružio se: 03 Maj 2008, 10:50
Postovi: 6643
Vjerovatno si do sada uvidio grešku, prva greška je da si u signaturi funkcija deklarisao float polje sa zadatim dimenzijama, što nije ispravno. Druga greška je konverzija, funkciji koja uzima 2-dimenzionalno polje predao si običan broj (onaj poziv funkcije 'citaj' skroz dole). Treća greška je što tražiš od korisnika da unese dužinu matrice, a deklarišeš polje sa dužinom 10, to nije sintaktička ali jeste logička greška (nakon što si učitao 'dim', deklariši polje sa mat[dim][dim]). To je prvo što mi je zapalo za oko. Popravi to pa vidi ima li još grešaka.

_________________
You smug-faced crowds with kindling eye
Who cheer when soldier lads march by,
Sneak home and pray you'll never know
The hell where youth and laughter go.


Vrh
 Profil  
 
 Tema posta: Re: Zadatak iz C-a
PostPoslato: 22 Jun 2012, 00:00 
OffLine
Voajer
Voajer

Pridružio se: 05 Jul 2010, 22:12
Postovi: 6
Hristov je napisao:
Vjerovatno si do sada uvidio grešku, prva greška je da si u signaturi funkcija deklarisao float polje sa zadatim dimenzijama, što nije ispravno. Druga greška je konverzija, funkciji koja uzima 2-dimenzionalno polje predao si običan broj (onaj poziv funkcije 'citaj' skroz dole). Treća greška je što tražiš od korisnika da unese dužinu matrice, a deklarišeš polje sa dužinom 10, to nije sintaktička ali jeste logička greška (nakon što si učitao 'dim', deklariši polje sa mat[dim][dim]). To je prvo što mi je zapalo za oko. Popravi to pa vidi ima li još grešaka.


Trenutno sam odustao od ovog zadatka i kontam gde sam pogresio ali kad ispavim sada me zeza ovaj celobrojni podatak kod pozia funkcije.... dosta toga sam skontao. Vjezbacu jos dosta zadataka sa funkcijama pa cu se vratiti na ovo ponovo.
Hvala u svakom slucaju.


Vrh
 Profil  
 
 Tema posta: Re: Zadatak iz C-a
PostPoslato: 15 Maj 2016, 11:50 
OffLine
Voajer
Voajer

Pridružio se: 03 Apr 2016, 16:45
Postovi: 2
Potrebna mi je pomoć oko sljedećeg zadatka:

Definisati strukturu PITANJE kojom se reprezentuje jedno pitanje u nekom kvizu,
a čiji su atributi tekst pitanja (statički string), prvi odgovor (statički string), drugi odgovor (statički string),
treći odgovor (statički string), te redni broj tačnog odgovora (cijeli broj – 1, 2
ili 3).
Definisati strukturu KVIZ kojom se reprezentuje jedan kviz, a čiji su atributi broj pitanja (cijeli broj) i pitanja (dinamički niz).
Definisati funkciju koja dodaje novo pitanje u kviz, a čiji je prototip: void dodaj(KVIZ *k, PITANJE *p);
Definisati funkciju koja prikazuje pitanje (i ponuđene odgovore) čiji je redni broj rb. Prototip funkcije je: void prikazi_pitanje(KVIZ *k, int rb);
Definisati funkciju koja vraća informaciju o tome da li je odgovor, čiji je redni broj rbo, tačan odgovor na pitanje čiji je redni broj rb.
Prototip funkcije je: int tacan(KVIZ *k, int rb, int rbo);
U glavnom programu:
- definisati novi kviz, pa u njega dodati dva pitanja(sa pripadajućim ponuđenim odgovorima),
- korisniku redom prikazivati pitanja na standardni izlaz, a sa standardnog ulaza učitavati odgovore
korisnika. Korisnik odgovara tako što unosi redni broj odgovora: 1, 2 ili 3 (u suprotnom prikazati poruku o greški i ponovo učitati odgovor na isto pitanje).
- na kraju, kada korisnik odgovori na sva pitanja, prikazati rezultat u procentima na standardni izlaz.
Napomena: Ukupan broj pitanja se dinamički alocira (nije unaprijed poznat ukupan broj pitanja jer korisnik manipuliše izbornikom).
Korisnik može manipulisati samo ponuđenim odgovorima na postavljeno pitanje,
kao i izbornikom koji mu omogućava da li želi da se doda naredno pitanje, prikaže rezultat, ili da korisnik terminira program.
To znači da korisnik sam određuje kad se kviz završava.
Nema korištenja datoteka, sav program se izvršava preko command prompt-a.

Primjer izvršavanja programa:
Kod:
1. Koje godine je nastao programski jezik C?

1. 1852

2. 1872

3. 1972

Izaberite odgovor: 6

Greska (dozvoljene vrijednosti su 1, 2 i 3)!

Izaberite odgovor: 3

2. Ko je autor programskog jezika C?

1. Bill Gates

2. Dennis Ritchie

3. Steve Jobs

Izaberite odgovor: 2

Rezultat: 100%


U ovom zadatku mi nekoliko stvari nije jasno:
1) Kako dodati pitanje u kviz, tj. gdje treba definisati tekst pitanja (jer se tekst ne učitava, nego se automatski prikazuje kad korisnik hoće da doda novo pitanje)?
2) Pošto korisnik sam određuje kada će se program terminirati, kako definisati redoslijed pitanja koja dolaze kada ih korisnik
dodaje jedno po jedno (kada više nema definisanih pitanja valjda bi trebalo da se ispiše poruka o terminiranju programa, je li tako?)?
3) Tekst pitanja se ne definiše u datoteci, pa kako onda da se prikazuju na standarnom izlazu po redoslijedu kojim dolaze?

Definicije:
Kod:
#define MAX 1000000



typedef struct

{

    char tekstPitanja[MAX];

    char prviOdgovor[MAX];

    char drugiOdgovor[MAX];

    char treciOdgovor[MAX];

    int rbto;//redni broj tacnog odgovora(1, 2 ili 3)

}PITANJE;



typedef struct

{

    int bp;//ukupan broj definisanih pitanja

    PITANJE *pitanja;

}KVIZ;


Unaprijed hvala.


Vrh
 Profil  
 
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Odgovori na temu  [ 4 Posta ] 

Sva vremena su u UTC [ DST ]


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 1 gost


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Powered by phpBB® Forum Software © phpBB Group
Hosting BitLab
Prevod - www.CyberCom.rs