Diferència entre revisions de la pàgina «M3 - Programació estructurada / Exercicis UF1: Proves»

De wikiserver
Dreceres ràpides: navegació, cerca
(Prova 4)
 
(Hi ha 25 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
==2018-19==
+
==2020-21==
  
 +
<!--
 
===Prova 1===
 
===Prova 1===
  
 
Recorda:  Scanner teclat = new Scanner(System.in);
 
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-)  
+
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-) '''1,5 punts'''
 
<pre>
 
<pre>
   Ex. 5 i 7                                             Ex. 7 i 5
+
   Ex. 5 i 7                                             Ex. 3 i 9                                   
  
   1  3  5  7                                         1  3  5  
+
   1  3  5  7                                         1  3  5   7  9
     6  4  2                                             4  2
+
     6  4  2                                             8  6  4  2
   1  3  5  7                                         1  3  5
+
   1  3  5  7                                         1  3  5   7  9
     6  4  2                                             4  2             
+
     6  4  2                                                    
   1  3  5  7                                         1  3  5
+
   1  3  5  7                                    
                                                          4  2
+
                                                     
                                                        1  3  5
+
                                                     
 
</pre>
 
</pre>
<!--
 
<source lang="java">
 
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++) {
+
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. '''1,5 punts'''
 
 
            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("");
 
        }
 
 
 
    }
 
}
 
</source>
 
-->
 
 
 
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.  
 
 
<pre>
 
<pre>
 
Ex
 
Ex
  
123 (1+2=3), 134 (1+3=4), 145 (1+4=5)
+
101 (1+0=1), 112 (1+1=2), 123 (1+2=3), 134 (1+3=4), 145 (1+4=5) ...
 
</pre>
 
</pre>
  
<!--
+
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) '''1,5 punts'''
<source lang="java">
 
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);
 
            }
 
           
 
        }
 
    }
 
}
 
</source>
 
-->
 
 
 
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)  
 
 
<pre>
 
<pre>
 
   #      #           
 
   #      #           
Línia 98: Línia 34:
 
   #      #                                     
 
   #      #                                     
 
</pre>
 
</pre>
<!--
 
<source lang="java">
 
package provessrc;
 
  
import java.util.Scanner;
+
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. '''1,5 punts'''
 +
<pre>
 +
Exemple 1
  
public class Ex3 {
+
22 44 77  5 21 62 11 331 44 6 7 82 -1
    public static void main(String[] args) {
+
No!
        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("");
 
        }
 
    }
 
}
 
</source>
 
-->
 
  
 +
Exemple 2
  
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.
+
234 45 56 45 37 18 24 66
 +
Sí!
  
<!--
+
Exemple 3
<source lang="java">
 
package provessrc;
 
  
import java.util.Scanner;
+
44 589 24 126 37 39 28 12 91 121 327
 +
Sí!
 +
</pre>
  
public class Ex4 {
+
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). '''2 punts'''
    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.");
 
            }
 
    }
 
}
 
</source>
 
-->
 
 
 
 
 
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). 2 punts
 
 
<pre>
 
<pre>
 
             5
 
             5
Línia 179: Línia 62:
 
</pre>
 
</pre>
  
<!--
+
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). '''2 punts'''
<source lang="java">
 
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("");
 
        }
 
    }
 
}
 
</soruce>
 
-->
 
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). 2 punts
 
 
<pre>
 
<pre>
 
     *                *
 
     *                *
Línia 214: Línia 70:
 
     * * * * * * * * * *
 
     * * * * * * * * * *
 
  </pre>
 
  </pre>
<!--
 
<source lang="java">
 
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("");
 
        }
 
    }
 
}
 
</source>
 
-->
 
<!--
 
 
===Prova 2===
 
===Prova 2===
  
1. Fes un programa que demani dos números senars més grans que 2 i mostri el següent:        
+
Recorda: Scanner teclat = new Scanner(System.in);
<pre>                                                                                                     
 
    Ex. 5 i 7                                      Ex. 7 i 3 
 
  
   1 2 3 4  6                                     1 2  4 5 6  
+
1. Fes un programa que demani dos números senars més grans que 2 i mostri el següent (en l'exemple els números són 5 -files- i 7 -columnes-) '''1,5 punts'''
     6  4 3 2 1                                     6 5 4  2 1  
+
<pre>
   1 2 3 4  6                                     1 2  4 5 6   
+
  Ex. 5 i 7                        Ex. 3 i 9 
     6  4 3 2 1                                    
+
 
   1 2 3 4  6                                  
+
   1 2 3 4  6                       1 2  4 5 6 7 8       
 +
     6  4 3 2 1                       8 7 6 5 4  2 1  
 +
   1 2 3 4  6                       1 2  4 5 6 7 8    
 +
     6  4 3 2 1                        
 +
   1 2 3 4  6                        
 
</pre>
 
</pre>
-->
 
<!--
 
<source lang="java">
 
package proves;
 
  
import java.util.Scanner;
+
2. Escriu un programa que mostri tots el números de 3 xifres que compleixen que cada dígit és divisible per l'anterior. '''1 punt'''
 +
<pre>
 +
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) ...
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("");
 
            }
 
        }
 
}
 
</source>
 
-->
 
<!--
 
2. Escriu un programa que mostri tots el números de 3 xifres que compleixen que cada dígit és divisible per l’anterior. 
 
 
 
<pre>                                                                           
 
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), ...
 
 
</pre>
 
</pre>
-->
 
<!--
 
<source lang="java">
 
package proves;
 
  
public class ex2 {
+
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) '''1,5 punts'''
   
 
    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);
 
                }
 
            }
 
           
 
        }
 
    }
 
}
 
</source>
 
-->
 
<!--
 
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)                                            
 
 
<pre>
 
<pre>
    # # # # # # #                     
+
  # # # # # # #                     
    #  
+
  #  
    #       
+
  #       
    # # # # # # #                                               
+
  # # # # # # #                                               
                #       
+
              #       
                #       
+
              #       
    # # # # # # #
+
  # # # # # # #  
 
</pre>
 
</pre>
-->
 
<!--
 
<source lang="java">
 
package proves;
 
  
import java.util.Scanner;
+
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 la que cada número és més gran que l'anterior o una seqüencia de 5 números en la que cada número és menor que l'anterior. '''2 punts'''
 +
<pre>
 +
Exemple 1
  
public class ex3 {
+
3 7 22 3 4 67 12 12 87 76 111 124 33 45 56 77 -1 → NO
    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("");
 
        }
 
           
 
  }               
 
       
 
}
 
</source>
 
-->
 
<!--
 
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:
 
<pre>
 
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Í
+
Exemple 2
  
3 7 22 3 4 67 12 87 76 111 124 88 45  36  17  11 → SÍ
+
3 7 22 3 4 67 12 12 87 76 111 124 33 45 56 77 88 99  → SÍ
</pre>
 
-->
 
<!--
 
<source lang="java">
 
package proves;
 
  
import java.util.Scanner;
+
Exemple 3
  
public class ex4 {
+
3 7 22 3 4 67 12 12 87 76 111 124 88 45 36 17 11 → SÍ
      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");
 
      }   
 
}
 
}
 
</source>
 
-->
 
<!--
 
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5).                                                                                                             
 
<pre>
 
              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
 
 
</pre>
 
</pre>
-->
 
<!--
 
<source lang="java">
 
package proves;
 
  
import java.util.Scanner;
+
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). '''2 punts'''
 
 
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("");
 
        }
 
     
 
    } 
 
}
 
</source>
 
-->
 
<!--
 
6. Mostra per pantalla aquesta "representació" a partir d’un número impar introduït per teclat (en el exemple 5).                                                                                                  
 
 
<pre>
 
<pre>
    *              *
+
        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
 
</pre>
 
</pre>
-->
 
<!--
 
<source lang="java">
 
package proves;
 
  
import java.util.Scanner;
+
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). '''2 punts'''
 
+
<pre>
public class ex6 {
+
*      *
 
+
* *  * *
    public static void main(String[] args) {
+
* * * * *   
 
+
* *  * *       
        Scanner teclat = new Scanner(System.in);
+
*      *
        System.out.println("Introdueix un número: ");
+
</pre>
        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("");
 
        }
 
 
    }
 
}
 
</source>
 
 
-->
 
-->
 
 
<!--
 
<!--
 
===Prova 3===
 
===Prova 3===
  
1. Fes un programa que demani dos números senars més grans que 2 i mostri el següent:
+
1. Escriu un programa que imprimeixi el següent “triangle” de números tenint com a entrada el número de files. Per exemple si l’entrada fos 5 la sortida seria'''2 punts'''
<pre>                                                                                                             
 
  Ex. 5 i 7                                    Ex. 7 i 3 
 
 
 
1 2 3 4 5                                      1 2 3 
 
          7 6                                        7 6 5 4   
 
1 2 3 4 5                                      1 2 3 
 
          7 6                                        7 6 5 4     
 
1 2 3 4 5                                      1 2 3 
 
                                                    7 6 5 4   
 
                                              1 2 3 
 
</pre>
 
-->
 
<!--
 
<source lang="java">
 
package pe3p3;
 
 
 
import java.util.Scanner;
 
 
 
 
 
public class Ex1 {
 
    public static void main(String[] args) {
 
         
 
        Scanner lector = new Scanner(System.in);
 
        System.out.println("Introduce un número:");
 
        int n1 = lector.nextInt();       
 
        System.out.println("Introduce un altre número:");
 
        int n2 = lector.nextInt();
 
        int petit, gran;
 
        if((n1 > 2 && n2 > 2 && n1%2==1 && n2%2==1)){
 
            if (n1>n2){
 
                petit=n2; gran=n1;
 
            }else { 
 
                petit=n1; gran=n2;
 
            }   
 
            for (int i = 1; i <= gran; i++) {
 
                if(i%2==1){
 
                    for (int j = 1; j <= petit; j++) {                   
 
                        System.out.print(" "+j);
 
                    }
 
                }else{
 
                    for (int j = 1; j <= petit; j++) {                   
 
                        System.out.print(" ");
 
                    }
 
                    for (int j = gran; j > petit; j--) {                                                                   
 
                            System.out.print(" "+j);
 
                    }
 
                }
 
            System.out.println("");   
 
            }                     
 
        }else{
 
            System.out.println("Només valors senars més grans que 2");
 
        }
 
    }
 
}
 
</source>
 
-->
 
<!-- 
 
2. Escriu un programa que mostri tots el números de n xifres que compleixen que tenen més dígits senars que parells.                                                                              1,5 punts
 
<pre>
 
Ex n=7
 
 
 
1000111 – 1000113 – 1000115 – 1000117 ...
 
</pre>
 
-->
 
<!--
 
<source lang="java">
 
package pe3p3;
 
 
 
import java.util.Scanner;
 
 
 
public class Ex2 {
 
 
 
    public static void main(String[] args) {
 
        Scanner lector = new Scanner(System.in);
 
        System.out.println("Introdueix un valor:");
 
        int num = lector.nextInt();
 
        int primer = 1, darrer, contParells, contSenars, numActual, digit, numLinia = 0;
 
        int i = 1;
 
        while (i < num) {
 
            primer = primer * 10;
 
            i++;
 
        }
 
        darrer = primer * 10;
 
       
 
        for (int n = primer; n < darrer; n++) {
 
            contParells = 0;
 
            contSenars = 0;
 
            numActual = n;
 
 
 
            while (numActual > 0) {
 
 
 
                digit = numActual % 10;
 
 
 
                if (digit % 2 == 1) {
 
                    contSenars++;
 
                } else {
 
                    contParells++;
 
                }
 
                numActual = numActual / 10;
 
 
 
            }
 
 
 
            if (contSenars > contParells) {
 
                System.out.print(n + " - ");
 
                numLinia++;
 
                if (numLinia == 10) {
 
                    System.out.println("");
 
                    numLinia = 0;
 
                }
 
            }
 
        }
 
 
 
    }
 
}
 
</source>
 
-->
 
<!--
 
3. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'P' (en l'exemple el número és 7)                                               
 
 
<pre>
 
<pre>
# # # # # # #                   
+
1
#          # 
+
1 2 1
#          #     
+
1 2 3 2 1
# # # # # # #                                             
+
1 2 3 4 3 2 1
#     
+
1 2 3 4 5 4 3 2 1
#     
 
#
 
 
</pre>
 
</pre>
-->
 
<!--
 
<source lang="java">
 
package pe3p3;
 
  
import java.util.Scanner;
+
2. Volem construir una seqüència de números caracteritzada per:
 +
:* El primer element anomenat llavor pot ser qualsevol número positiu
 +
:* El segon element és igual a la llavor més 1
 +
:* Els altres elements són el producte de tots els anteriors més 1
 +
:* Per exemple si la llavor és 2, els primers elements són : 2, 3, 7, 43, 1807, 3263443, ... 
  
public class Ex3 {
+
Escriu un programa que '''donada una llavor introduïda per teclat i un número màxim''' també introduït per teclat, ens mostri tota la seqüència d’elements de la seqüència inferiors al màxim, i finalment ens digui quants elements hi ha.  '''1,5 punts'''
  
    public static void main(String[] args) {
+
Per exemple:
        Scanner lector = new Scanner(System.in);
 
        System.out.println("Introdueix un valor:");
 
        int num = lector.nextInt();
 
 
 
        for (int i = 1; i <= num; i++) {
 
            if (i == 1 || i == num / 2 + 1) {
 
                for (int j = 1; j <= num; j++) {
 
                    System.out.print("# ");
 
                }
 
            } else if (i < num / 2 + 1) {
 
                for (int j = 1; j <= num; j++) {
 
                    if (j == 1 || j == num) {
 
                        System.out.print("# ");
 
                    } else {
 
                        System.out.print("  ");
 
                    }
 
                }
 
            } else {
 
                System.out.print("# ");
 
            }
 
            System.out.println("");
 
        }
 
    }
 
}
 
</source>
 
-->
 
<!--
 
4. En una seqüencia de números enters positius acabada en -1, indicar quina és la mida de la seqüència més gran de números senars consecutius.                                                                                                                             
 
 
<pre>
 
<pre>
Exemples.
+
Si llavor=2 i màxim=1000, escriurà : 2 3 7 43 i escriurà que la seqüència té 4 elements
3 7 22  3  4  67 12  87  76  111  123  33  45  56  77 -1 → 4
+
Si llavor =3 i màxim =25000, escriurà : 3 4 13 157 24493 i escriurà que la seqüència té 5 elements
 
 
3 7  22  3 1  67 11  25  76  111  124  88  45  36  17  11 -1 → 5
 
 
</pre>
 
</pre>
-->
 
<!--
 
<source lang="java">
 
package pe3p3;
 
  
import java.util.Scanner;
+
3. Escriu un programa que demani un número senar com a entrada. Donarà com a sortida una lletra ' T ' majúscula escrita amb lletres ' t ' minúscules com les de la figura. La longitud de la barra superior i l'alçada de la T són les mateixes i iguals al número
 
+
entrat per teclat ( a l'exemple 7). '''1,5 punts'''
public class Ex4 {
 
 
 
    public static void main(String[] args) {
 
        Scanner lector = new Scanner(System.in);
 
        System.out.println("Introdueix un valor:");
 
        int num = lector.nextInt();
 
        int contLlarg = 0, contActual = 0;
 
        while (num != -1) {
 
            if (num % 2 == 1) {
 
                contActual++;
 
                if (contActual > contLlarg) {
 
                    contLlarg = contActual;
 
                }
 
            } else if (contActual>0){
 
                contActual = 0;
 
            }
 
            System.out.println("Introdueix un valor:");
 
            num = lector.nextInt();
 
        }
 
        System.out.println("La seqüència més llarga és de "+contLlarg+" números.");
 
    }
 
 
 
}
 
</source>
 
-->
 
<!--
 
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5).                                                                                                            
 
 
<pre>
 
<pre>
        5
+
  t t t t t t t
      4  4
+
        t
    3      3
+
        t
  2          2
+
        t
1 1 1 1 1 1 1 1 1 
+
        t
 +
        t
 +
        t
 
</pre>
 
</pre>
-->
 
<!--
 
<source lang="java">
 
package pe3p3;
 
  
import java.util.Scanner;
+
4. En una seqüència de números enters positius acabada en -1, indicar quants números són iguals a la suma de tots els números que el precedeixen: '''1,5 punts'''
 
+
Exemple:
public class Ex5 {
 
    public static void main(String[] args) {
 
        Scanner lector = new Scanner(System.in);
 
        System.out.println("Introdueix un valor:");
 
        int num = lector.nextInt();
 
       
 
        for (int i = num; i >=1; i--) {
 
            for (int j = 1; j <= i; j++) {
 
                System.out.print("  ");
 
            }
 
            System.out.print(i+" ");
 
            if(i==1){
 
                for (int j = 1; j <= num*2-2; j++) {
 
                System.out.print(i+" ");
 
            }
 
            }else if(i<num){
 
                for (int j = i; j < num+(num-1-i); j++) {
 
                    System.out.print("  ");
 
                }
 
                System.out.print(i);
 
            }
 
            System.out.println("");
 
        }
 
       
 
    }
 
}
 
</source>
 
-->
 
<!--
 
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït per teclat (en el exemple 5).                                                                                                 
 
 
<pre>
 
<pre>
# # # # # # #
+
3  7  10  3  23  9  55  110  11  12 245 33 45 56 77 -1  
#    *    #         
 
#  *  *  #
 
# *      * #
 
#  *  *  #   
 
#    *    #   
 
# # # # # # #
 
</pre>
 
-->
 
<!--
 
<source lang="java">
 
Opció 1
 
package pe3p3;
 
 
 
import java.util.Scanner;
 
 
 
 
 
public class Ex6 {
 
 
 
    public static void main(String[] args) {
 
        Scanner lector = new Scanner(System.in);
 
        System.out.println("Introdueix un valor:");
 
        int num = lector.nextInt();
 
        for (int i = 1; i <= num + 2; i++) {
 
            System.out.print("# ");
 
        }
 
        System.out.println("");
 
        for (int i = 1; i <= num / 2 + 1; i++) {
 
            System.out.print("# ");
 
            for (int j = i; j < num / 2 + 1; j++) {
 
                System.out.print(" ");
 
            }
 
            System.out.print("* ");
 
            if (i > 1) {
 
                for (int j = 1; j <= 2 * (i - 1) - 1; j++) {
 
                    System.out.print(" ");
 
                }
 
 
 
                System.out.print("* ");
 
            }
 
            for (int j = i; j < num / 2 + 1; j++) {
 
                System.out.print(" ");
 
            }
 
            System.out.println("# ");
 
 
 
        }
 
        for (int i = 1; i <= num / 2; i++) {
 
            System.out.print("# ");
 
            for (int j = 1; j <= i; j++) {
 
                System.out.print(" ");
 
            }
 
            System.out.print("* ");
 
            if (i < num / 2) {
 
                for (int j = 1; j <= (num - 4) - 2 * (i - 1); j++) {
 
                    System.out.print(" ");
 
                }
 
                System.out.print("* ");
 
            }
 
            for (int j = 1; j <= i; j++) {
 
                System.out.print(" ");
 
            }
 
            System.out.println("# ");
 
        }
 
 
 
        for (int i = 1; i <= num + 2; i++) {
 
            System.out.print("# ");
 
        }
 
        System.out.println("");
 
    }
 
}
 
 
 
Opció 2
 
 
 
package pe3p3;
 
 
 
import java.util.Scanner;
 
 
 
public class Ex6op2 {
 
  
    public static void main(String[] args) {
+
Hi ha 5 números iguals a la suma dels que el precedeixen
        Scanner lector = new Scanner(System.in);
+
(10  23  55 110 245)
        System.out.println("Introdueix un valor:");
 
        int num = lector.nextInt();
 
        int col1 = num / 2 + 2, col2 = num / 2;
 
 
 
        for (int i = 1; i <= num + 2; i++) {
 
            System.out.print("# ");
 
        }
 
        System.out.println("");
 
 
 
        for (int i = 1; i <= num; i++) {
 
            System.out.print("# ");
 
            if (i <= num / 2 + 1) {
 
                col1--;
 
                col2++;
 
            } else {
 
                col1++;
 
                col2--;
 
            }
 
            for (int j = 1; j <= num; j++) {
 
                if (j == col1 || j == col2) {
 
                    System.out.print("* ");
 
                } else {
 
                    System.out.print(" ");
 
                }
 
            }
 
            System.out.println("# ");
 
        }
 
        for (int i = 1; i <= num + 2; i++) {
 
            System.out.print("# ");
 
        }
 
        System.out.println("");
 
    }
 
}
 
</source>
 
-->
 
 
 
<!--
 
===Prova 4===
 
 
 
1. Fes un programa que demani dos números més grans que 3 i mostri el següent:
 
<pre>                                                                                                                         
 
    Ex. 5 i 8                                        Ex. 7 i 3
 
 
 
1 2 3 4 * 6 7 * 9                                1 2 * 4 5 6 * 8 9   
 
* 8 * * 5 * * * *                                * * 7 * * * 3 * *   
 
1 2 3 4 * 6 7 * 9                                1 2 * 4 5 6 * 8 9
 
* 8 * * 5 * * * *                                * * 7 * * * 3 * *
 
1 2 3 4 * 6 7 * 9                                1 2 * 4 5 6 * 8 9
 
                                                  * * 7 * * * 3 * *
 
                                                  1 2 * 4 5 6 * 8 9   
 
 
</pre>
 
</pre>
2. Escriu un programa que mostri tots el números de n xifres  (n senar) que compleixen que la suma dels dígits de la part esquerra és igual a la suma dels dígits de la part dreta.                                                                                                  <pre>  
 
Ex n=7
 
  
1000001 – 1000010 – 1000100 – 1001001 - 1001010...
+
5. 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. '''1,5 punts'''                                                                                                                           
</pre>
 
  
3. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'M' (en l'exemple el número és 7)                                             
+
Exemples.
 
<pre>
 
<pre>
  *          *
+
3  7  22  3  4  67 12  87  76  111  124  33  45  56  77 -1 → NO
  * *      * * 
 
  *  *  *  *
 
  *    *    *
 
  *          * 
 
  *          *
 
  *          *
 
</pre>
 
  
4. En una seqüencia de números enters positius acabada en -1, mostrar els números iguals a la suma de tots els números que el precedeixen:
+
3  7  22  3  4 67 12  87  76  111  124  33  45  56  77  88  99  → SÍ
<pre>                                                                                                                             
 
Exemple:
 
  
3  7  10 23 9 55 110 2 11 12 245 33 45 56 77 -1 10  23  55 110  245
+
3  7  22 4 67 12 87 76 111 124 88 45 36 17 11
</pre>
 
 
 
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 7).                                                                                                             
 
<pre>
 
  7 7 7 7 7 7 7
 
  6          6
 
  5          5
 
  4 4 4 4 4 4 4
 
  3          3
 
  2          2
 
  1 1 1 1 1 1 1 
 
 
</pre>
 
</pre>
  
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït per teclat (en el exemple 5).                                                                                                   
+
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït per teclat (en el exemple 5).                                                                                                  '''2 punts'''
 
<pre>
 
<pre>
  # # # # # # #  
+
  # # # # # # #  
  #    *    #           
+
  #    *    #           
  #    *    #
+
  #    *    #
  # * * * * * #  
+
  # * * * * * #  
  #    *    #     
+
  #    *    #     
  #    *    #     
+
  #    *    #     
  # # # # # # #
+
  # # # # # # #
 
</pre>
 
</pre>
 
-->
 
-->

Revisió de 12:52, 6 maig 2021

2020-21