Jump to content
sNNk3r

Probleme recursivitate si structuri de date

Recommended Posts

Buna ziua, am 2 probleme de rezolvat. Una pe baza de recursivitate si alta pentru structuri de date pentru facultate si nu reusesc. Daca m-ati putea ajuta sau daca mi-ati putea oferi sfaturi pentru rezolvarea acestora as fi recunoscator.

 

RECURSIVITATE:
1. Scrieti un algoritm recursiv care afiseaza un cuvant dat in ordine inversa.
2. Scrieti o functie recursiva pentru calculul lui n!.
3. Calculati recursiv cmmdc(a,b).
4. Determinati al n-lea termen din sirul lui Fibinacci.
5. Calculul functiei recursive Aackerman definita prin relatiile:
Ack(m,n)= n+1 , daca m=0
    Ack(m-1,1) ,daca m>0 si n=0   
Ack(m-1, ack(m,n-1)) daca n>0, m>0

 

STRUCTURI DE DATE:
1. Se da structura Data calendaristica. Functie care compara doua date calendaristice.
2. Se dau numele, nota, nrdiscipline cu media 10. Daca se dau n studenti, sa se
determine primii k studenti in ordine descrescatoare dupa note, in caza de egalitate,
descrescatoare dupa numarul notelor de 10.
3. Scrieti intr-un fisier toate articolele introduse de la tastatura, cu structura
den, pret, cant, unit_mas, prettotal=pret*cant , TVA=prettotal*1.19. 

 

Sunt pentru recuperarea la facultate a 2 laboratoare. Sigur dumneavoastra stiti mai bine C++ si timpul este limita sa ma documentez sa invat acuma deoarece trebue sa recuprez laboratoarele sa pot intra in sesiune.. Am incercat si am facut problemele discutate si oferite la clasa pe aceste teme si am sa le las mai jos.. Va multumesc mult!

 

https://www.mediafire.com/file/fhj7do22kxgd3x3/Fundamentele+programarii.rar

  • Downvote 1
Link to comment
Share on other sites

  • Active Members

Toate la un gugal distanta:

 

1. Reverse string:

 

#include <iostream>

void reverseStringInPlace(std::string &stringToReverse)
{
    int numCharacters = stringToReverse.length();
    for (int i=0; i<numCharacters/2; i++)
    { std::swap(stringToReverse[i], stringToReverse[numCharacters-i-1]); }
}

int main()
{
   std::string stringToReverse = "reversing a string";
   std::cout << stringToReverse << std::endl;
   reverseStringInPlace(stringToReverse);
   std::cout << stringToReverse << std::endl;
   return 0;
}

 

2. Factorial (recursive)

 

int factorialfinder(int x)         
{
    if (x == 1)        // HERE 5 is not equal to 1 so goes to else
    {
        return 1;
    }else
    {
        return x*factorialfinder(x-1); // returns 5*4*3*2*1  when x==1 it returns 1
    }
}

 

3. GCD (recursive)

 

#include <iostream>
using namespace std;

int hcf(int n1, int n2);

int main()
{
   int n1, n2;

   cout << "Enter two positive integers: ";
   cin >> n1 >> n2;

   cout << "H.C.F of " << n1 << " & " <<  n2 << " is: " << hcf(n1, n2);

   return 0;
}

int hcf(int n1, int n2)
{
    if (n2 != 0)
       return hcf(n2, n1 % n2);
    else 
       return n1;
}

 

4. n-th Fibo number

 

#include<stdio.h> 
  
int fib(int n) 
{ 
  int f[n+1]; 
  int i; 
  
  f[0] = 0; 
  f[1] = 1; 
  
  for (i = 2; i <= n; i++) 
  { 
      f[i] = f[i-1] + f[i-2]; 
  } 
  
  return f[n]; 
} 
  
int main () 
{ 
  int n = 9; 
  printf("%d", fib(n)); 
  getchar(); 
  return 0; 
} 

 

5. Ackerman (recursive)

#include <stdio.h>
int ack(int m, int n)
{
  if (m == 0) return n+1;
  if (n == 0) return ack( m - 1, 1 );
  return ack( m - 1, ack( m, n - 1 ) );
}

int main()
{
  for (int i = 0; i < 6; ++i)
    for (int j = 0; j < 6; ++j)
      printf("ack(%d,%d) = %d\n", i, j, ack(i,j));
      
  return 0;
}

 

La alea cu structuri de date mi-e lene sa caut, da' pula mea, mai fa si tu ceva.

  • Thanks 1
  • Upvote 3
Link to comment
Share on other sites

3 hours ago, MrGrj said:

Toate la un gugal distanta:

 

1. Reverse string:

 


#include <iostream>

void reverseStringInPlace(std::string &stringToReverse)
{
    int numCharacters = stringToReverse.length();
    for (int i=0; i<numCharacters/2; i++)
    { std::swap(stringToReverse[i], stringToReverse[numCharacters-i-1]); }
}

int main()
{
   std::string stringToReverse = "reversing a string";
   std::cout << stringToReverse << std::endl;
   reverseStringInPlace(stringToReverse);
   std::cout << stringToReverse << std::endl;
   return 0;
}

 

2. Factorial (recursive)

  


int factorialfinder(int x)         
{
    if (x == 1)        // HERE 5 is not equal to 1 so goes to else
    {
        return 1;
    }else
    {
        return x*factorialfinder(x-1); // returns 5*4*3*2*1  when x==1 it returns 1
    }
}

  

3. GCD (recursive)

 


#include <iostream>
using namespace std;

int hcf(int n1, int n2);

int main()
{
   int n1, n2;

   cout << "Enter two positive integers: ";
   cin >> n1 >> n2;

   cout << "H.C.F of " << n1 << " & " <<  n2 << " is: " << hcf(n1, n2);

   return 0;
}

int hcf(int n1, int n2)
{
    if (n2 != 0)
       return hcf(n2, n1 % n2);
    else 
       return n1;
}

 

4. n-th Fibo number

 


#include<stdio.h> 
  
int fib(int n) 
{ 
  int f[n+1]; 
  int i; 
  
  f[0] = 0; 
  f[1] = 1; 
  
  for (i = 2; i <= n; i++) 
  { 
      f[i] = f[i-1] + f[i-2]; 
  } 
  
  return f[n]; 
} 
  
int main () 
{ 
  int n = 9; 
  printf("%d", fib(n)); 
  getchar(); 
  return 0; 
} 

 

5. Ackerman (recursive)


#include <stdio.h>
int ack(int m, int n)
{
  if (m == 0) return n+1;
  if (n == 0) return ack( m - 1, 1 );
  return ack( m - 1, ack( m, n - 1 ) );
}

int main()
{
  for (int i = 0; i < 6; ++i)
    for (int j = 0; j < 6; ++j)
      printf("ack(%d,%d) = %d\n", i, j, ack(i,j));
      
  return 0;
}

 

La alea cu structuri de date mi-e lene sa caut, da' pula mea, mai fa si tu ceva.

Iti multumesc nespus de mult, ideea ca si eu am gasit pe net dar doar primele 2 probleme mi-au rulat corect.. ultimele 2 nu se compileaza nu am reusit sa-i dau de cap. La structuri de date am gasit doar una posibil sa le gasesc pe toate daca stiu cum sa caut :)) Iti multumesc nespus de mult. Cele 2 imi ruleaza minunat, ultimele 2 naiba le stie ce erori imi dau de nu se compileaza.. Sincer daca le gaseam pe net nu va mai ceream si ajutorul dvs, posibil sa nu fi cautata bine mai ales cum sunt foarte stresat cu sesiunea si ca nu rezolv problemele sa recuperez laboratoarele sa pot intra in examen si la aceasta materia :D Sper sa ma ajutati va multumesc mult pentru ajutorul acordat pana in momentul de fata.

 

Aceasta eroare o primesca la problema 4:https://imgur.com/ydQe0Ky

Link to comment
Share on other sites

stray - ai caractere invalide, ai dat copy-paste ca nestapanitu'. Cand dai copy-paste se pastreaza encoding-ul.

Te duci frumos la linia respectiva si o rescrii de mana, asta daca nu esti prea stresat bineinteles.

Lucrezi, ai probleme de sanatate? Nu inteleg de unde atat stres.

 

http://www.runceanu.ro/adrian/wp-content/cursuri/poo2013/lab 1 - POO (2013).pdf

https://programmersheaven.com/ - traduci in engleza

Edited by ARUBA
Link to comment
Share on other sites

1 hour ago, ARUBA said:

stray - ai caractere invalide, ai dat copy-paste ca nestapanitu'. Cand dai copy-paste se pastreaza encoding-ul.

Te duci frumos la linia respectiva si o rescrii de mana, asta daca nu esti prea stresat bineinteles.

Lucrezi, ai probleme de sanatate? Nu inteleg de unde atat stres.

 

http://www.runceanu.ro/adrian/wp-content/cursuri/poo2013/lab 1 - POO (2013).pdf

https://programmersheaven.com/ - traduci in engleza

Desigur, din cauza sesiunii in care am intrat fiind anul I :) sper sa ma intelegeti multumesc frumos

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...