România
Roportal.ro

Probleme in C++

Început de alina_ally23, Mar 3 ian 2006 · 132 răspunsuri · 106.875 vizualizări

Geethk2 mesaje#111
Dia papadia a scris:
am si eu o problema la informatica...ma poate ajuta cineva, va rog?

Scrieti un program c++ care contine 5 functii:

a.reuniunea a 2 multimi

b.intersectia a 2 multimi

c.diferenta a 2 multimi

d.introducerea unui vector

e.afisarea unui vector

hi

prieten

i pare rau Sunt nou la acest subiect.

Deedeek1 mesaje#112

Am si eu o mare problema. Am un program C++ care modeleaza o agenda telefonica, insa interfata e in DOS. Acum trebuie sa ii adaug o interfata grafica (forma pe care deja am creat-o), doar ca nu inteleg cum se leaga fiecare buton de codul aferent. Ma poate ajuta cineva?

Ch.Cristian072 mesaje#113

#include<iostream>

#include<cstdio>

#include<cstdlib>

using namespace std;

int main ()

{char a[400], *p;

int n,i,s[400],x,j,l,c,M[100][100];

cout<<"Cate litere are cuvantul(cu tot cu spatii):";cin>>n;cout<<'\n';

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

{cout<<"litera "<<i+1<<"=";cin>>a;cout<<'\n';

}

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

{p=&a;

int atoi(*p);

s=atoi;

}

cout<<"cate blocuri(linii):";cin>>l;cout<<'\n';

cout<<"blocuri de cate(coloane):";cin>>c;cout<<'\n';

for(x=0; x<l; x++)

{for(j=0; j<c; x++)

{M[x][j]=s[j+x*c];}}

cout<<"Matricea cod nemodificata este:"<<'\n';

for(x=0; x<l; x++)

{for(j=0; j<c; x++)

cout<<M[x][j]<<'\t';

cout<<'\n';}

system("PAUSE");

return 0;}

Am scris codul acesta in dev-C++ si nu imi apare nici-o eroare la compilare dar in momentul in care ajunge sa afiseze acea matrice imi iasa din program, poate stie cineva de ce? Sau poate stiti cum as putea sa pun elementele din sir in matrice.

Taquito203 mesaje#115

nu compilatorul e de vina. pana sa ajungi sa fie de vina compilatorul ai mult de invatat...

ce am observat eu:

> nu aloci memorie pentru p.

> liniile 14 si 15 sunt gresite, nu exista asemenea atribuire(s=atoi) sau declaratie ( int atoi(*p);)

> de ce citesti cuvantul litera cu litera ? citeste-l pe tot cu scanf("%s",..) sau cu cin>>

lasa dev-cpp. incearca code-blocks. iti arata si nr liniei si unde se termina un anumit bloc cand dai click pe acolade.. are si intelisense dar trebuie sa apesi ctrl+space

Editat Vin 12 aug 2011 20:56

Buburuzka_191 mesaje#116

trebuie sa fac o structura care are pointer spre float si numarul de elemente. sa se defineasc functiile de initializare de eliminare a vectorului de modificare, setare a dimensiunii, de acces la elementele vectorului, de calcul al normei vectorului . in functia main se realizeaza adunarea vectorului cu un numar

Ovimiu1 mesaje#117

#include<iostream.h>

#include<string.h>

void main()

{char s1[256],s2[53]="abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";

int i,j,n,k;

cin.get(s1,256);

cout<<"(n este un nr de la 1 la 25)"<<endl<<"n=";

cin>>n;

{k=0;

for(i=0;i<strlen(s1);i++)

if(k=0)

{for(j=0;j<strlen(s2);j++)

if(s1==s2[j])

{s1=s2[j+n];k++;}}

cout<<s1;

}

de ex scriu abcd si n=3

si imi apare tot abcd!!!

Editat Sâm 5 nov 2011 09:55

Taquito203 mesaje#118

> dupa if(k=0) nu va intra deoarece k va fi 0 tot timpul. vroiai sa scrii ==

> ai prea multe acolade. de exemplu, cea inainte de k=0 nu ajuta la nimic. si nici al-2-lea for nu trebuie inclus intre acolade

> la j+n poate sa depaseasca dimensiunea vectorului. fa un mod lungime vector (cu "(j+n) % strlen(s2)")

> ai pus de 2 ori literele mici in vectorul 2. trebuie literele mari si literele mici din alfabetul englez(in total 52 de litere)

> cand faci atribuirea "s1=s2[j+n]", de exemplu, daca s1 este 'a' si n=2, se face atribuirea s1 devine c, dar cand in al doilea for se ajunge la c, egalitatea are loc din nou... intelegi ? intri intr-o buclă nedorită de atribuiri. asta se rezolva cu break. pui "break;" inainte de ultima acolada din ultimul if

xLolita933 mesaje#119

Enunt: Din fisierul text "graf.txt" se citeste matricea de adiacenta a unui graf neorientat. Fisierul contine n randuri de numere intregi corespunzatoare celor n linii ale matricii, pe fiecare rand gasindu-se cele n elemente ale unei linii din matrice, separate prin spatii. Realizati un program care verifica daca in graful respectiv exista un ciclu de lungime 4 afisand un mesaj corespunzator.

Rezolvarea mea:

#include <fstream.h>

#include <iostream.h>

int a[10][10];

int v[5],n;

int back(int i,int k)

{

if (k<4)

for (int j=i+1;j<n;j++)

if (a[j]==1)

{

v[k+1]=j;

back(j,k+1);

}

else;

else

if (a[v[1]][v[4]]==1)

return 1;

else

return 0;

}

void main()

{

ifstream f("graf.txt");

int x,i,j,p;

f>>n;

for (i=1;i<=n;i++)

for (j=1;j<=n;j++)

f>>a[j];

x=0;

for (i=1;i<=n;i++)

{ v[1]=i; p=back(i,1);

if (p==1)

{

x=1;

}

}

if (x==1) cout<<"DA";

else cout<<"NU";

f.close();

}

Acum, problema e ca mie imi afiseaza NU orice as face. Aveti idee unde-am gresit?

Taquito203 mesaje#120

in back, in acel for cauti de la i+1 in sus. daca i+1 e n nu mai poti sa te duci nicaieri.

cred ca merge mai bine cu o functie back de o variabila, nu 2 cum ai tu.

pui in stiva la pasul k un nod care e vecin cu cel de la pasul k-1.

ma gandesc ca ar trebui sa pastrezi si un vector boolean care sa spuna ce noduri ai vizitat. si sa poti adauga doar noduri nevizitate. cand cobori in stiva schimbi valoarea de vizitare la nodul scos.

cel mai bine ia un exemplu mic de 5 noduri si fa un debug. pune sa afiseze in diverse parti..in interiorul acelui for. sa vezi cand intra acolo...

Editat Mie 28 dec 2011 13:23

← Înapoi la Programare