M3 - Programació estructurada / Exercicis UF1: Proves+Solucions

De wikiserver
La revisió el 19:01, 24 gen 2021 per Rsort (Discussió | contribucions) (2018-19)
Dreceres ràpides: navegació, cerca

2020-21

Prova 1

Recorda: Scanner teclat = new Scanner(System.in);

1. Fes un programa que demani dos números senars més grans que 4 i mostri el següent (en l'exemple els números són 5 -files- i 7 -columnes-)

   Ex. 5 i 7                                             Ex. 7 i  5

   1   3   5   7                                         1   3   5    
     6   4   2                                             4   2
   1   3   5   7                                         1   3   5
     6   4   2                                             4   2              
   1   3   5   7                                         1   3   5
                                                           4   2 
                                                         1   3   5
package provessrc;

import java.util.Scanner;

public class Ex1 {

    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        System.out.println("Introdueix un número:");
        int num1 = teclat.nextInt();

        System.out.println("Introdueix un segon número:");
        int num2 = teclat.nextInt();

        for (int i = 1; i <= num1; i++) {

            if (i % 2 == 1) {
                for (int j = 1; j <= num2; j++) {
                    if (j % 2 == 1) {
                        System.out.print(j + " ");
                    } else {
                        System.out.print("  ");
                    }
                }

            } else {
                for (int j = num2; j >= 1; j--) {
                    if (j % 2 == 1) {
                        System.out.print("  ");
                    } else {
                        System.out.print(j + " ");
                    }
                }

            }
            System.out.println("");
        }

    }
}

2. Escriu un programa que mostri tots el números de 3 xifres que compleixen que la suma dels dígits de més pes és igual al 3r dígit.

Ex

123 (1+2=3), 134 (1+3=4), 145 (1+4=5)


package provessrc;

public class Ex2 {
     public static void main(String[] args) {
         int d1,d2,d3;
         for (int i = 100; i < 1000; i++) {
             d3 = i%10;
             d2 = i/10%10;
             d1 = i/10/10;
             if (d1+d2==d3){
                 System.out.println(i);
             }
             
         }
     }
}

3. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'N' (en l'exemple el número és 5)

   #       #          
   # #     #             
   #   #   #             
   #     # #    
   #       #                                    
package provessrc;

import java.util.Scanner;

public class Ex3 {
     public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        System.out.println("Introdueix un número:");
        int num = teclat.nextInt();
        
         for (int i = 1; i <= num; i++) {
             for (int j = 1; j <= num; j++) {
                 if (j==1 || j==num || i==j){
                     System.out.print("# ");
                 }else{
                     System.out.print("  ");
                 }
             }
             System.out.println("");
         }
     }
}


4. En una seqüencia de números enters positius acabada en -1, determinar si s’ha produït una seqüencia de 3 números parells o imparells seguits.


package provessrc;

import java.util.Scanner;

public class Ex4 {
     public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        int contParells=0, contImparells=0;
        System.out.println("Introdueix un número:");
        int num=teclat.nextInt();
        while (num!=-1 && contParells<3 && contImparells<3){
            if (num%2==0){
                contParells++;
                contImparells=0;
            }else{
                contImparells++;
                contParells=0;
            }
            if (contParells<3 && contImparells<3){
                 System.out.println("Introdueix un número:");
                 num=teclat.nextInt();
            }
        }
        if (contParells==3){
            System.out.println("Tres parells seguits..,");
        }
            else if (contImparells==3){
                    
                    System.out.println("Tres imparells seguits...");                 
         
        }
            else{
                System.out.println("No s'ha produït cap seqüència de tres números parells o imparells seguits.");
            }
     }
}


5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). 2 punts

            5
           4 4
          3 3 3
         2 2 2 2
        1 1 1 1 1


package provessrc;

import java.util.Scanner;


public class Ex5 {
     public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        int contParells=0, contImparells=0;
        System.out.println("Introdueix un número:");
        int num=teclat.nextInt();
        
         for (int i = 1; i <= num; i++) {
             for (int j = 1; j < num-i+1; j++) {
                 System.out.print(" ");
             }
             for (int j = 1; j <=i; j++) {
                 System.out.print(num-i+1+" ");
             }
             System.out.println("");
         }
     }
}

6. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). 2 punts

    *                 *
    * *             * *       
    * * *         * * *
    * * * *     * * * *              
    * * * * * * * * * *
 
package provessrc;

import java.util.Scanner;

public class Ex6 {
    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        int contParells=0, contImparells=0;
        System.out.println("Introdueix un número:");
        int num=teclat.nextInt();       
        
        for (int i = 1; i <= num; i++) {
             for (int j = 1; j <= i; j++) {
                 System.out.print("* ");
             }
             for (int j = 1; j <=2*(num-i); j++) {
                 System.out.print("  ");
             }
              for (int j = 1; j <= i; j++) {
                 System.out.print("* ");
             }
             
             System.out.println("");
         }
     }
}