M3 - Programació estructurada / Exercicis UF1: Proves

De wikiserver
La revisió el 13:04, 6 feb 2019 per Rsort (Discussió | contribucions) (Prova 1)
Dreceres ràpides: navegació, cerca

2018-19

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

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)


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)

   #       #          
   # #     #             
   #   #   #             
   #     # #    
   #       #                                    


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.


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

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

    *                 *
    * *             * *       
    * * *         * * *
    * * * *     * * * *              
    * * * * * * * * * *
 

Prova 2

1. Fes un programa que demani dos números senars més grans que 2 i mostri el següent:

                                                                                                      
     Ex. 5 i 7                                       Ex. 7 i 3  

   1 2 3 4 5 6                                      1 2   4 5 6   
     6   4 3 2 1                                      6 5 4   2 1    
   1 2 3 4 5 6                                      1 2   4 5 6   
     6   4 3 2 1                                     
   1 2 3 4 5 6                                   
package proves;

import java.util.Scanner;


public class Proves {

    public static void main(String[] args) {
        
        Scanner teclat = new Scanner(System.in);
        
        System.out.println("Introdueix un número: ");
        int n1 = teclat.nextInt();
        System.out.println("Introdueix un altre número: ");
        int n2 = teclat.nextInt();
        int files, columnes;
        if (n1 > n2) {
            files = n2;
            columnes = n1;
        } else {
            files = n1;
            columnes = n2;
        }
               
        for (int i=1; i<=files; i++){
                      
                if (i%2==1){
                    for (int j= 1; j <=columnes; j++) {
                        if (j==files || j== columnes){
                            System.out.print(" ");
                        }
                        else{
                        System.out.print(j +" ");   
                        }
                    } 
                } else {
                    for (int j = columnes; j >=1; j--) {
                       if (j==files || j== columnes){
                            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 cada dígit és divisible per l’anterior.

                                                                             
Ex
111 (1%1=0 i 1%1=0) , 211 (2%1=0 i 1%1=0) , 221 (2%2=0 i 2%1=0), ...
package proves;

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

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

    # # # # # # #                     
    # 
    #      
    # # # # # # #                                              
                #       
                #       
    # # # # # # #
package proves;

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 n = teclat.nextInt();
            
        for (int i=1; i<=n; i++){
            
            if (i==1 || i==n || i==n/2+1){
                for (int j = 1; j <= n; j++) {
                    System.out.print("# ");                  
                }
            }
            else if (i<n/2+1){
                         System.out.print("# "); 
                        }
            else{
                for (int j = 1; j < n; j++) {
                    System.out.print("  ");                  
                }
                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 5 números en els que cada número és major que l’anterior o una seqüencia de 5 números en els que cada número és menor que l’anterior.

Exemples:

3  7  22  3  4  67 12  87  76  111  124  33  45  56  77 -1 → NO

3  7  22  3  4  67 12  87  76  111  124  33  45  56  77  88  99   → SÍ

3  7  22  3  4  67 12  87  76  111  124  88  45  36  17  11 → SÍ
package proves;

import java.util.Scanner;

public class ex4 {
      public static void main(String[] args) {
          
      int contMajors=0, contMenors=0;
      Scanner teclat = new Scanner(System.in);
      System.out.println("Introdueix un número: ");
      int num = teclat.nextInt();
      if (num != -1) {
         int numant=num;
         System.out.println("Introdueix un número: ");
         num = teclat.nextInt();
      
         while (num!=-1 && contMajors < 5 && contMenors<5){
             if (num > numant){
                 contMajors++;
                 contMenors=0;
             } else if (num < numant){
                 contMenors--;
                 contMajors=0;
             }else{
                 contMajors=0;
                 contMenors=0;
             }
             if (contMajors < 5 && contMenors<5){
                numant=num;
                System.out.println("Introdueix un número: ");
                num = teclat.nextInt();
             }
            
         }  
         
      } 
      if (num!= -1){
          System.out.println("Sí");
      }
      else{
          System.out.println("No");
      }    
}
}

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

               1
            2  1  2
         3  2  1  2  3
      4  3  2  1  2  3  4
   5  4  3  2  1  2  3  4  5
package proves;

import java.util.Scanner;

public class ex5 {
    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 < 2*(num-i+1); j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print((i-j+1)+" ");
            }
            for (int j = 2; j <= i; j++) {
                System.out.print(j+" ");
            }
            System.out.println("");
        }
      
    }  
}

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

     *              *
     *  *        *  *
     *  *  *  *  *  *    
     *  *        *  *        
     *              *
package proves;

import java.util.Scanner;



public class ex6 {

    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 / 2 + 1; i++) {

            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            for (int j = 1; j < num - (2 * (i - 1)); j++) {
                System.out.print("  ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");

            }

            System.out.println("");
        }
        for (int i = 1; i <= num - (num / 2 + 1); i++) {

            for (int j = i; j <= num - (num / 2 + 1); j++) {
                System.out.print("* ");
            }
            for (int j = 1; j <= 2 + (2 * (i - 1)); j++) {
                System.out.print("  ");
            }
            for (int j = i; j <= num - (num / 2 + 1); j++) {
                System.out.print("* ");
            }

            System.out.println("");
        }

    }
}