Mudanças entre as edições de "Estruturas de Repetição"

(Problemas)
 
(11 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 7: Linha 7:
  
 
<pre>
 
<pre>
Pseudocódigo            | Pascal                  | Linguagem C          | Python
+
Pseudocódigo             
                         |                        |                      |
+
                          
Enquanto (condição) Faça | while (condição) do     | while(condição){    | while(condição):
+
Enquanto (condição) Faça  
   (bloco de código)     |   begin                |   (bloco de código) |   (bloco de código)
+
  (bloco de código)     
Fim Enquanto            |      (bloco de código) | }                   |
+
FimEnquanto           
                        |    end;                |                      |
+
________________________
 +
 
 +
Pascal
 +
 
 +
while(condição) do
 +
   begin
 +
      (bloco de código)
 +
   end
 +
________________________
 +
 
 +
Linguagem C
 +
 
 +
while(condição){
 +
   (bloco de código)
 +
}
 +
________________________
 +
 
 +
Python
 +
 
 +
while(condição):
 +
   (bloco de código)
 +
________________________
 +
 
 +
C++
 +
 
 +
while(condição){
 +
  (bloco de código)
 +
}
 +
 
 
</pre>
 
</pre>
  
Linha 22: Linha 50:
  
 
<pre>
 
<pre>
Pseudocódigo            | Pascal                  | Linguagem C          | Python
+
Pseudocódigo             
                         |                        |                      |
+
                          
i = 1;                  | i := 1;                 | i = 1;               | i = 1;
+
i = 1;                   
                        |                        |                      |
+
                       
Enquanto (i <= 10) Faça  | while (i <= 10) do      | while(i <= 10){      | while(i <= 10):
+
Enquanto (i <= 10) Faça 
   escreva(i);          |    begin                |    printf("%d",x);  |    print(i);
+
  escreva(i);          
   i = i + 1;           |      writeln(i);       |   i = i + 1;       |    i = i + 1;
+
  i = i + 1;          
Fim Enquanto            |      i:= i+1;         | }                   |
+
Fim Enquanto           
                        |    end;                |                      |
+
                       
 +
________________________
 +
 
 +
Pascal
 +
 
 +
i := 1;
 +
 
 +
while(i <= 10)do
 +
  begin
 +
      writeln(i);
 +
      i:= i+1;
 +
  end;
 +
________________________
 +
 
 +
Linguagem C
 +
 
 +
i = 1;
 +
 
 +
while(i <= 10){
 +
   print("%d",i);
 +
   i = i+1;
 +
}
 +
________________________
 +
 
 +
Python
 +
 
 +
i = 1;
 +
 
 +
while(i<=100):
 +
  print(i);
 +
   i = i + 1;
 +
 
 +
________________________
 +
 
 +
C++
 +
 
 +
i = 1;
 +
 
 +
while(i <= 10){
 +
  cout << i;
 +
  i = i+1;
 +
}
 
</pre>
 
</pre>
  
Linha 43: Linha 112:
 
Fim Para             
 
Fim Para             
 
__________________
 
__________________
 +
 
Pascal
 
Pascal
  
Linha 50: Linha 120:
 
   end;
 
   end;
 
__________________
 
__________________
 +
 
Linguagem C
 
Linguagem C
 +
 
for(variável = valor inicial; variável <= valor inicial; variável = variável + 1){
 
for(variável = valor inicial; variável <= valor inicial; variável = variável + 1){
 
       (bloco de código)
 
       (bloco de código)
 
}
 
}
 
__________________
 
__________________
 +
 
Python
 
Python
  
 
for x in range(valor inicial , valor final):
 
for x in range(valor inicial , valor final):
 
   (bloco de código)
 
   (bloco de código)
 +
__________________
 +
 +
C++
 +
 +
for(variável = valor inicial; variável <= valor inicial; variável = variável + 1){
 +
      (bloco de código)
 +
}
 +
  
 
</pre>
 
</pre>
Linha 69: Linha 150:
  
 
<pre>
 
<pre>
Pseudocódigo                | Pascal                | Linguagem C                    | Python
+
Pseudocódigo                 
 
+
                           
Para i de 1 ATÉ 10 + 1 faça  | FOR i:=1 to 10 + 1 do | for(i= 1; i <= 10 ; i = i + 1){ | for i in range(1 , 10 + 1):
+
Para i de 1 ATÉ 10 + 1 faça   
     escreva(i);              |    begin              |    printf("%d",i);              |      print(i);
+
     escreva(i);               
Fim Para                    |      escreva(i);    | }                              |
+
Fim Para                     
                             |    end;              |                                |
+
                              
 +
__________________
  
  
__________________
 
 
Pascal
 
Pascal
  
FOR i:=1 to 10 + 1 do
+
FOR i := 1 to 10 + 1 do
 
   begin
 
   begin
    escreva(i);
+
      write(i);
 
   end;
 
   end;
 
__________________
 
__________________
 +
 
Linguagem C
 
Linguagem C
for(i= 1; i <= 10 ; i = i + 1){
+
 
      printf("%d",i);
+
for(i = 1; i <= 10; i = i + 1){
 +
  print("%d",i);
 
}
 
}
 
__________________
 
__________________
 +
 
Python
 
Python
  
for i in range(1 , 10 + 1):
+
for i in range (i,10 + 1):
 
   print(i);
 
   print(i);
 +
__________________
 +
 +
C++;
 +
 +
for(i = 1; i <= 10; i = i + 1){
 +
  cout << i;
 +
}
  
 
</pre>
 
</pre>
  
Note que usando o '''enquanto''' dispensamos o incremento da variavel controladora dentro do bloco de código,  
+
Note que usando o '''enquanto''' dispensamos o incremento da variável controladora dentro do bloco de código,  
 
esse incremento é definido na assinatura loop.
 
esse incremento é definido na assinatura loop.
 +
 +
=== Exemplo ===
 +
==== [https://www.urionlinejudge.com.br/judge/pt/problems/view/1078 1078 - Tabuada] ====
 +
<pre>
 +
#include <stdio.h>
 +
#include <stdlib.h>
 +
 +
int main(){
 +
int n = 0 ,i = 0;
 +
 +
scanf("%d", &n);
 +
 +
for(i = 1; i < 11; i++){
 +
int resultado = i * n;
 +
printf("%d x %d = %d\n",i,n,resultado);
 +
}
 +
}
 +
</pre>
  
 
=== Problemas ===
 
=== Problemas ===
  
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1078 Tabuada]
+
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1078 1078 - Tabuada]
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1142 PUM]
+
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1114 1114 - Senha Fixa]
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1143 Quadrado e ao Cubo]
+
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1142 1142 - PUM]
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1153 Fatorial Simples]
+
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1143 1143 - Quadrado e ao Cubo]
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1114 Senha Fixa]
+
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1153 1153 - Fatorial Simples]
 +
 
 +
==== Quer mais? ====
 +
 
 +
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1064 1064 - Positivos e Média]
 +
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1074 1074 - Par ou Ímpar]
 +
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/1151 1151 - Fibonacci Fácil]
 +
* [https://www.urionlinejudge.com.br/judge/pt/problems/view/2862 2862 - Inseto!]

Edição atual tal como às 22h36min de 8 de março de 2020

Estruturas de Repetição

As estruturas de repetição também são conhecidas como laços (loops) e são utilizados para executar, repetidamente, uma instrução ou bloco de instrução enquanto determinada condição estiver sendo satisfeita. Assista a videoaula sobre este tipo de estrutura aqui.

As principais formas de implementar o loop são o enquanto (ou while) e o para de até (ou for).

Sintaxe enquanto:

Pseudocódigo             
                         
Enquanto (condição) Faça 
   (bloco de código)     
FimEnquanto             
________________________

Pascal

while(condição) do
   begin
      (bloco de código)
   end
________________________

Linguagem C

while(condição){
   (bloco de código)
}
________________________

Python

while(condição):
   (bloco de código)
________________________

C++

while(condição){
   (bloco de código)
}

Exemplo enquanto:

Um loop que apresenta até o numero 10.
var i : Inteiro.

Pseudocódigo             
                         
i = 1;                   
                         
Enquanto (i <= 10) Faça  
   escreva(i);           
   i = i + 1;            
Fim Enquanto             
                         
________________________

Pascal 

i := 1;

while(i <= 10)do
   begin
      writeln(i);
      i:= i+1;
   end;
________________________

Linguagem C

i = 1;

while(i <= 10){
   print("%d",i);
   i = i+1;
}
________________________

Python

i = 1;

while(i<=100):
   print(i);
   i = i + 1;

________________________

C++

i = 1;

while(i <= 10){
   cout << i;
   i = i+1;
}


Sintaxe para de até:

Pseudocódigo

Para (variavel) de (valor inicial) ATÉ (valor final) passo (incremento) faça  
   (bloco de código)
Fim Para            
__________________

Pascal

FOR (variável):=(valor inicial) to (valor final) do	
   begin
      (bloco de código)
   end;
__________________

Linguagem C

for(variável = valor inicial; variável <= valor inicial; variável = variável + 1){
      (bloco de código)
}
__________________

Python

for x in range(valor inicial , valor final):
   (bloco de código)
__________________

C++

for(variável = valor inicial; variável <= valor inicial; variável = variável + 1){
      (bloco de código)
}


Exemplo para de até:

Um loop que apresenta até o numero 10.
var i : Inteiro.

Pseudocódigo                 
                             
Para i de 1 ATÉ 10 + 1 faça  
    escreva(i);              
Fim Para                     
                             
__________________


Pascal

FOR i := 1 to 10 + 1 do
   begin
      write(i);
   end;
__________________

Linguagem C

for(i = 1; i <= 10; i = i + 1){
   print("%d",i);
}
__________________

Python

for i in range (i,10 + 1):
   print(i);
__________________
 
C++;

for(i = 1; i <= 10; i = i + 1){
   cout << i;
}

Note que usando o enquanto dispensamos o incremento da variável controladora dentro do bloco de código, esse incremento é definido na assinatura loop.

Exemplo

1078 - Tabuada

#include <stdio.h>
#include <stdlib.h>

int main(){
	int n = 0 ,i = 0;

	scanf("%d", &n);

	for(i = 1; i < 11; i++){
		int resultado = i * n;
		printf("%d x %d = %d\n",i,n,resultado);
	}
}

Problemas

Quer mais?