| AV. | Solicitado em | Data de Entrega | Nome | Descrição |
| 2 | 20.04.2011 | 11.05.2011 | E2.1:Primos | Fluxograma e pseudocódigo para validar números primos.
Número primo é aquele é o resultado da divisão é inteira apenas por ele mesmo ou 1. O usuário deve entrar com um número e o algoritmo deve dizer se é primo ou não.
|
| 20.04.2011 | 11.05.2011 | E2.2:Baskara | Fluxograma e pseudocódigo para calcular a equação de Báskara.
Com a equação de Báskara é possível calcular a raiz de uma equação de 2o grau. O usuário deve entrar com os valores de A, B e C.
|
|
| 20.04.2011 | 11.05.2011 | E2.3:Tabuada | Fluxograma, pseudocódigo e programa das tabuadas do 2 ao 9.
O usuário não precisa entrar com valor algum.
|
|
| 20.04.2011 | 11.05.2011 | E2.4:Fibonacci | Fluxograma, pseudocódigo e programa para calcular uma série de Fibonacci.
A série de Fibonacci é amplamente encontrada na Natureza (Série de Fibonacci). O usuário deve entrar com o número de iterações da série (n). O Código deve imprimir toda a seqüência.
|
|
| 20.04.2011 | 11.05.2011 | E2.5:CPF | Fluxograma, pseudocódigo e programa para validar um CPF.
O CPF brasileiro contém verificação para checar se o número é válido. Verifique na internet.
|
|
| 3 | 18.05.2011 | 15.06.2011 | E3:Lancamento (2.0 pts) |
Fazer um programa para ajudar nos cálculos do projeto integrador. Este programa deve ser receber todos os parâmetros (não fixos, aceleração da gravidade é fixo, por exemplo) necessários para modelar a trajetória do projétil a ser lançado no projeto integrador, exceto um parâmetro, o qual deve ser calculado pelo programa. Os parâmetros são, por exemplo, ângulo de lançamento, velocidade inicial, distância de deslocamento e outros que são usados em sua modelagem matemática.
Este trabalho pode ser feito pelo mesmo grupo e número de componentes do projeto integrador.
Exemplo: projetar um programa que calcule a hipotenusa de um triângulo. Para isto, deve-se entrar com o tamanho dos catetos, dado que r2=a2+b2, logo, r = (a2+b2)1/2. Note que x1/2 é igual a raiz quadrada de x. Segue abaixo o código exemplo e a saída:
Código em Linguagem C#include <stdio.h>
#include <math.h>
int main()
{
// declara as variaveis
float a, b, r;
// recebe os valores do usuario
printf("Digite os valores dos catetos:\n");
printf("a: ");
scanf("%f", &a);
printf("b: ");
scanf("%f", &b);
// calcula a hipotenusa r = raiz(a^2 + b^2)
r = sqrt(pow(a, 2) + pow(b, 2));
// exibe o valor da hipotenusa
printf("Valor da hipotenusa:\n");
printf("r: %f\n", r);
}
SaídaE:\>hipotenusa.exe Digite os valores dos catetos: a: 3 b: 4 Valor da hipotenusa: r: 5.000000 E:\> |
| 15.06.2011 | 18.06.2011 12h00 (GMT+03h00) |
P3:Funcao (6.0 pts) |
O trabalho deve calcular os valores da função abaixo dado alguns parâmetros de entrada. Os parâmetros de entrada são: A, B, x0, x1 e passo. O valor de y é dado por x, o qual é incrementado de acordo com o valor de passo dado pelo usuário.
Este trabalho pode ser feito pelo mesmo grupo e número de componentes do projeto integrador. Exemplo da Saída EsperadaE:\>p3.exe
Calcula os valores de y = A.sen(Bx) para uma faixa de x
Entre com o valor de A: 2
Entre com o valor de B: 6.28
Entre com o valor de x0: 0
Entre com o valor de x1: 10
Entre com o passo: 0.01
Dados de saida:
x y
0.000000, 0.000000
0.010000, 0.125517
0.020000, 0.250540
0.030000, 0.374575
0.040000, 0.497133
0.050000, 0.617731
0.060000, 0.735894
0.070000, 0.851155
0.080000, 0.963061
.
.
.
9.980133, -0.311948
9.990133, -0.187349
E:\>
Se as colunas forem plotado em um editor de gráficos, podemos obter o seguinte gráfico
|
1) É desejado um algoritmo que imprima em tela o maior número de uma coleção de três números dados: A, B e C. Construa o pseudocódigo e o código fonte em linguagem C.
Algoritmo: maior número de três
INÍCIO
VAR a, b, c;
ESCREVER "a: "
LER a
ESCREVER "b: "
LER b
ESCREVER "c: "
LER c
SE ( E (a >= b, a >= c) ) ENTÃO
INÍCIO
ESCREVER "o maior e: " + a
FIM
SENÃO SE (b >= c)
INÍCIO
ESCREVER "o maior e: " + b
FIM
SENÃO
INÍCIO
ESCREVER "o maior e: " + c
FIM
FIM
#include <stdio.h>
int main() {
int a, b, c;
printf("a: "); scanf("%i", &a);
printf("b: "); scanf("%i", &b);
printf("c: "); scanf("%i", &c);
if (a >= b && a >= c)
{
printf("o maior e: %i", a);
}
else if (b >= c)
{
printf("o maior e: %i", b);
}
else
{
printf("o maior e: %i", c);
}
}
2) É desejado um algoritmo que imprima em tela todos os múltiplos de 4 e 7 em uma série numérica de 1 até 250. Construa o fluxograma e o código fonte em linguagem C.
Algoritmo: múltiplos de 4 e 7 [1;250]
INÍCIO
PARA X DE 1 ATÉ 250 PASSO 1 FAÇA
INÍCIO
SE (OU( x%4 = 0, x%7 = 0)) ENTÃO
INÍCIO
ESCREVER x
FIM
FIM
FIM
#include <stdio.h>
int main()
{
for (int x = 1; x <= 250; x = x + 1)
{
if ((x % 4 == 0) || (x % 7 == 0))
{
printf("%i", x);
}
}
}
| Símbolo | Finalidade | Capacidade | Exemplo |
|---|---|---|---|
| int | valores inteiros |
16 bits (216) 32 bits (232) 64 bits (264) |
int x = 10; |
| float | valores com casas decimais | 3,4-38 a 3,4+38 | float pi = 3.1416; |
| char | caracteres | 1 char = 1 byte |
char enter = 13; // apenas um char char mensagem[] = "Ola mundo"; // uma sequência de characteres |
Mais informações sobre tipos de dados estão disponíveis em: http://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)#Tipos_de_dados e http://www.cplusplus.com/doc/tutorial/variables/.
| Símbolo | Finalidade | Exemplo |
|---|---|---|
| = | atribui um valor a uma variável |
float x = 2.3; char msg[] = "Ola mundo"; |
| + | soma dois valores ou variáveis |
float x = 10 + 2.3; float z = x + y; |
| - | subtrai dois valores ou variáveis |
float x = 10 - 2.3; float z = x - y; |
| / | divide dois valores ou variáveis |
float x = 10 / 2.3; float z = x / y; |
| * | multiplica dois valores ou variáveis |
float x = 10 * 2.3; float z = x * y * 2.5; |
| % | módulo de uma divisão |
int x = 10 % 3; // resultado é 1 float z = x % y; |
| Símbolo | Finalidade | Exemplo |
|---|---|---|
| = = | compara dois valores e retorna verdadeiro se iguais |
7 == 5 // retorna falso 5 == 5 // retorna verdadeiro a == b // compara duas variáveis |
| ! = | compara dois valores e retorna verdadeiro se diferentes |
7 != 5 // retorna verdadeiro 5 != 5 // retorna falso a != b // compara duas variáveis |
| > | retorna verdadeiro se o primeiro for maior que o segundo |
7 > 5 // retorna verdadeiro 5 > 5 // retorna falso 5 > 7 // retorna falso a > b // compara duas variáveis |
| < | retorna verdadeiro se o primeiro for menor que o segundo |
7 < 5 // retorna falso 3 < 5 // retorna verdadeiro 5 < 5 // retorna falso a < b // compara duas variáveis |
| >= | retorna verdadeiro se o primeiro for maior ou igual ao segundo |
7 >= 5 // retorna verdadeiro 5 >= 5 // retorna verdadeiro 5 >= 7 // retorna falso a >= b // compara duas variáveis |
| <= | retorna verdadeiro se o primeiro for menor ou igual ao segundo |
7 < 5 // retorna falso 3 <= 5 // retorna verdadeiro 5 <= 5 // retorna verdadeiro a <= b // compara duas variáveis |
| Símbolo | Finalidade | Exemplo |
|---|---|---|
| ! | NOT: inverte o valor de uma variável ou expressão lógica |
!(7 == 5) // retorna verdadeiro !(5 == 5) // retorna falso !true // retorna falso !false // retorna verdadeiro !a // inverte uma variável lógica |
| && | AND: retorna verdadeiro apenas quando duas variáveis forem verdadeiras |
(5 == 5) && (6 == 6) // retorna verdadeiro, pois (verdadeiro && verdadeiro) (7 == 5) && (6 == 6) // retorna falso, pois (falso && verdadeiro) (5 == 5) && (7 == 6) // retorna falso, pois (verdadeiro && falso) (7 == 5) && (7 == 6) // retorna falso, pois (falso && falso) (a == b) && !b // aplicado a variáveis |
| || | OR: retorna verdadeiro se ao menos um das duas variáveis forem verdadeiras |
(5 == 5) || (6 == 6) // retorna verdadeiro, pois (verdadeiro && verdadeiro) (7 == 5) || (6 == 6) // retorna verdadeiro, pois (falso && verdadeiro) (5 == 5) || (7 == 6) // retorna verdadeiro, pois (verdadeiro && falso) (7 == 5) || (7 == 6) // retorna falso, pois (falso && falso) (a == b) || !b // aplicado a variáveis |
Mais informações sobre operadores estão disponíveis em: http://www.cplusplus.com/doc/tutorial/operators/.
| Síntaxe | Finalidade | Exemplo |
|---|---|---|
if ( condição )
{
bloco: se verdadeira
}
else
{
bloco: senão
}
|
realização um desvio condicional |
// Verifica a magnitude de um numero
#include <stdio.h>
int main ()
{
int n = 0;
printf("Numero a ser verificado > ");
scanf("%i", &n);
if ( n < 0 )
{
printf("o numero %i e negativo\n", n);
}
else if ( n > 0 )
{
printf("o numero %i e positivo\n", n);
}
else
{
printf("o numero e zero\n");
}
}
|
| Síntaxe | Finalidade | Exemplo |
|---|---|---|
while ( condição )
{
bloco
}
|
repete um bloco enquanto uma condição for verdadeira |
// faz uma contagem regressiva
#include <stdio.h>
int main ()
{
int n = 0;
printf("Comecar no numero > ");
scanf("%i", &n);
while ( n > 0 ) {
printf("%i, ", n);
n = n - 1;
}
printf("Lancado!\n");
}
|
do {
bloco
} while ( condição );
|
repete um bloco enquanto uma condição for verdadeira |
// Exemplo de um terminal
#include <stdio.h>
int main ()
{
int n = 0;
do {
printf("Digite um numero [0 termina]: ");
scanf("%i", &n);
printf("Voce digitou: %i\n", n);
} while (n != 0);
printf("Fim!\n");
}
|
for ( inicial; condição; incremento )
{
bloco
}
|
repete um bloco enquanto uma condição for verdadeira |
// Programa de contagem regressiva
#include <stdio.h>
int main()
{
for (int n = 10; n > 0; n = n - 1)
{
printf("%i, ", n);
}
printf("Lancado!\n");
}
|
Mais informações sobre controle de estrutura estão disponíveis em: http://www.cplusplus.com/doc/tutorial/control/, os exemplos foram retirados deste link também.
#include <stdio.h>
int main()
{
printf("Olá mundo");
}
#include <stdio.h>
int main()
{
int numero = 0;
printf("Define se e impar ou par\n");
printf("Entre com um numero: ");
// espera um numero ser digitado
scanf("%d", &numero);
if ((numero % 2) == 0)
{
printf("Par!");
} else {
printf("Impar!");
}
}
#include <stdio.h>
// Calcula a tabuada de um numero dado
int main()
{
int numero = 0;
printf("Fazer a tabuada do: ");
// espera um numero ser digitado
scanf("%d", &numero);
// repete o bloco ate que x seja menor
// ou igual a 10
int x;
for (x = 0; x <= 10; x = x + 1)
{
// calcula x * o numero de entrada
int y = x * numero;
printf("%i x %i = %i \n", numero, x, y);
}
}
Sugeridas pelo programa:
Minhas sugestões:
