0% au considerat acest document util (0 voturi)
32 vizualizări3 pagini

Lab 2

Documentul prezintă 6 probleme de programare care ilustrează concepte precum atribuire, decizie, repetare, polimorfism parametric și recursivitate în Java. Problemele vizează verificarea dacă un număr este pătrat perfect, existența unui număr prim într-un interval, afișarea cifrei maxime dintr-un număr, calcularea maximului dintre niște numere, calcularea unui termen al unei progresii aritmetice și a unui termen din șirul lui Fibonacci.

Încărcat de

Balasoiu Simona
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOC, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
32 vizualizări3 pagini

Lab 2

Documentul prezintă 6 probleme de programare care ilustrează concepte precum atribuire, decizie, repetare, polimorfism parametric și recursivitate în Java. Problemele vizează verificarea dacă un număr este pătrat perfect, existența unui număr prim într-un interval, afișarea cifrei maxime dintr-un număr, calcularea maximului dintre niște numere, calcularea unui termen al unei progresii aritmetice și a unui termen din șirul lui Fibonacci.

Încărcat de

Balasoiu Simona
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOC, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 3

Lab.

2
Instrucţiuni elementare : atribuire, decizie, repetare (II)

1. Se citeşte un număr natural a. Să se afişeze dacă este pătrat perfect sau nu.
import javax.swing.*;
class PatratPerfect
{
public static void main(String args[])
{
int a=Integer.parseInt(JOptionPane.showInputDialog("a="));
double radical=Math.sqrt(a);
if((int)radical*(int)radical==a)
System.out.println("este");
else System.out.println("nu este");
}
}

2. Se citesc n1 şi n2 capetele unui interval închis. Să se afişeze dacă în intervalul [n1,


n2], există cel puţin un număr prim.
import javax.swing.*;
class ExistaNumerePrime
{
public static void main(String args[])
{
int n1=Integer.parseInt(JOptionPane.showInputDialog("n1="));
int n2=Integer.parseInt(JOptionPane.showInputDialog("n2="));
boolean exista=false;
for(int i=n1;i<=n2;i++)
if(estePrim(i)){
exista=true;
break;
}
if(exista)System.out.println("exista");
else System.out.println("nu exista");
}
private static boolean estePrim(int nr){
for(int i=2;i<=Math.sqrt(nr);i++)
if(nr%i==0)return false;
return true;
}
}

3. Se citeşte un număr natural de la tastatură. Să se afişeze care este cifra maximă din
acest număr.
import javax.swing.*;
class CifraMaxima
{

1
public static void main(String args[])
{
int a=Integer.parseInt(JOptionPane.showInputDialog("a="));
int max=0;
for(;;){
int cifraCrt=a%10;
if(cifraCrt>max)max=cifraCrt;
a=a/10;//reduc numarul:
if(a==0)break;
}
System.out.println(max);
}
}

4. Se citesc trei numere întregi a, b şi c, de la tastatură. Să se calculeze maximul dintre a


şi b (se va folosi metoda definită separat maxim(), ce are doi parametrii) şi maximul dintre a,
b şi c (se va folosi metoda definită separate maxim(), ce are trei parametrii). Această aplicaţie
ilustrează polimorfismul parametric în Java (posibilitatea ca în aceeaşi clasă să existe două
sau mai multe metode cu acelaşi nume, dar cu liste de parametrii diferiţi).
import javax.swing.*;
class CalculMaxim
{
public static void main(String args[])
{
int a=Integer.parseInt(JOptionPane.showInputDialog("a="));
int b=Integer.parseInt(JOptionPane.showInputDialog("b="));
int c=Integer.parseInt(JOptionPane.showInputDialog("c="));
int max2=maxim(a,b);
System.out.println(max2);
int max3=maxim(a,b,c);
System.out.println(max3);
}
private static int maxim(int a,int b){
if(a>=b)return a;
else return b;
}
private static int maxim(int a,int b,int c){
int max=a;
if(b>max)max=b;
if(c>max)max=c;
return max;
}
}

5. Se citeşte un număr natural n. Se citesc primul termen şi raţia unei progresii


aritmetice. Să se calculeze, recursiv, termenul de rang n al progresiei.
import javax.swing.*;
class ProgresieAritmetica
2
{
public static void main(String args[])
{
double a1=Double.parseDouble(JOptionPane.showInputDialog(
"primul termen al progresiei="));
double r=Double.parseDouble(JOptionPane.showInputDialog(
"ratia ="));
int n=Integer.parseInt(JOptionPane.showInputDialog("n ="));
//calcul termen de rang n:
double a_n=calcul(a1,r,n);
System.out.print("Termenul de rang "+n+" este: "+a_n);
}
private static double calcul(double primulTermen, double ratia,
int n)
{
if(n==1)return primulTermen;
return ratia+calcul(primulTermen,ratia,n-1);
}
}

6. Se citeşte un număr natural N. Să se calculeze termenul de rang N din şirul lui


Fibonacci.
Şirul lui Fibonacci se defineşte recursiv astfel:
a0= 1
a1=1
an=an-1+an-2 , pentru n>=2
import javax.swing.*;
class Fibonacci
{
public static void main(String args[])
{
int N=Integer.parseInt(JOptionPane.showInputDialog("N="));
System.out.println(fib(N));
}
private static int fib(int n){
if(n==0)return 1;
if(n==1)return 1;
return fib(n-1)+fib(n-2);
}
}

Tema

7. Se citeşte un număr natural N. Să se afişeze dacă acest număr este termen în şirul lui
Fibonacci.
8. Se citeşte un număr natural N. Să se calculeze suma primilor N termeni din şirul lui
Fibonacci.

S-ar putea să vă placă și