Mauro Cesar Bernardes 20/Maio/2014
Introdução à Computação
- Linguagem C: aulas 01 , 02 e 03
Agenda
• Introdução à linguagem C
– Material de apoio
• Livro: http://grauna.ime.usp.br/mod/url/view.php?id=1893
• Codeblocks: http://grauna.ime.usp.br/mod/url/view.php?id=1887
• Comandos Básicos:
– printf – scanf – while – for
– if ... Else
• Funções
Processos de tradução
Existem diversas linguagens de programação de alto nível.
Por exemplo: C, C++, Java, Pascal, Delphi, etc.
Os programas de computador são, geralmente, escritos utilizando uma linguagem de programação de alto nível (na qual um código ou programa fonte é criado) e são traduzidos para a linguagem de máquina
Os 2 principais processos que traduzem programas escritos em
uma linguagem de alto nível para a linguagem de máquina são
interpretação e compilação
Processo de Interpretação
Um interpretador é um programa que recebe como entrada um arquivo contendo um programa fonte
O interpretador lê linha a linha este arquivo de entrada, e executa uma a uma as instruções que estão nele codificadas segundo uma linguagem de programação.
Interpretador
Programa fonte Exemplo: teste.py
interpretador Execução
Processo de Interpretação
Programa fonte Exemplo: teste.py
print("Olá mundo!")
Processo de Compilação
Um compilador é um programa (ou um conjunto de programas) que recebe como entrada um programa fonte e cria um novo arquivo executável como saída;
O arquivo de entrada é o código fonte escrito pelo programador
O arquivo que o compilador produz, é normalmente identificado como código objeto
Este código objeto contém instruções de baixo nível,
traduzidas para a linguagem de máquina
Processo de Compilação
Compilador
Programa fonte Exemplo: teste.c
010011100 110011101 001011000 111101010 110011001 001
Programa objeto
Arquitetura Execução
O código produzido não é portável para qualquer arquitetura
Diferentes compiladores são construídos para as diferentes arquiteturas de processadores (diferentes famílias de processadores possuem conjuntos diferentes de instruções)
O compilador somente gera corretamente o código objeto caso não tenha encontrado um erro de compilação
#include <stdio.h>
#include <stdlib.h>
main() {
printf ("Alo mundo!");
system("PAUSE");
}
Compiladores e a
Linguagem C
9
Histórico da Linguagem C
• Criada por Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix
• C++ é uma extensão da linguagem C
• O sistema Unix é escrito em C e C++
10
Estrutura básica de um programa C
diretivas para o pré-processador declaração de variáveis globais
main () {
declaração de variáveis locais da função main comandos da função main
}
11
Diretivas para o processador – Bibliotecas -
• Diretiva #include permite incluir uma biblioteca
• Bibliotecas contêm funções pré-definidas, utilizadas nos programas
• Exemplos
Funções de texto
#include <string.h>
Funções matemáticas
#include <math.h>
Funções padrão
#include <stdlib.h>
Funções de entrada e saída
#include <stdio.h>
12
Exemplo:
Algumas funções Matemáticas da biblioteca math.h
Tangente de x tan(x)
tan
Raiz quadrada de x sqrt(x)
sqrt
Seno de x sin(x)
sin
Calcula x elevado à potência y pow(x, y)
pow
Logaritmo decimal de x log10(x)
log10
Logaritmo natural de x log(x)
log
Arredonda o número real para baixo; floor(3.2) é 3 floor(x)
floor
Valor absoluto de x fabs(x)
fabs
e elevado à potencia x exp(x)
exp
Cosseno de x (x em radianos) cos(x)
cos
Arredonda o número real para cima; ceil(3.2) é 4 ceil(x)
ceil
Comentário Exemplo
Função
#include <math.h>
13
CodeBlocks
Para saber mais: http://grauna.ime.usp.br/mod/url/view.php?id=1887
14
Usando o CodeBlocks
#include <stdio.h>
#include <stdlib.h>
main() {
printf ("Alo mundo!");
system("PAUSE");
}
15
Usando o CodeBlocks
16
Usando o CodeBlocks
Introdução à Linguagem C
O esqueleto de um Programa em C
#include <stdio.h>
/* protótipos de funções */
int main()
{
/* declaração de variáveis */
/* lista de comandos */
return 0; /* comandos terminam com ; */
} /* blocos de comandos entre {} */
/* demais funções */
19
Exemplo 1
/* meu primeiro programa C */
#include <stdio.h>
#include <stdlib.h>
main() {
printf ("Alo mundo!"); //mostra
system("PAUSE"); //fica parado
}
20
Declaração de
variáveis
21
Declaração de variáveis
• Uma variável é um local na memória do computador em que um valor pode ser armazenado para ser usado por um programa
• Antes de ser usada, uma variável precisa ser declarada por um nome e um tipo de dado, imediatamente após a chave { inicial do
main();
• Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ e iniciar sempre com letra ou _
• Os principais tipos são: int, float, double e char
• Exemplos
int n;
int quantidade_valores;
float x, y, somaValores;
char sexo;
char nome[40];
C diferencia letras maiúsculas de minúsculas!
int n, N;
n é diferente de N!
Escopo de Variável em
linguagem C
Escopo de Variável
• Escopo define onde e quando uma variável pode ser usada em um programa.
• As variáveis podem ter escopo Local ou Global
• Uma variável é chamada local quando é declarada dentro de uma função. Nesse caso:
– Ela existe apenas dentro da função que a contém.
– Após o término da execução da função, ela deixa de existir.
• Uma variável é chamada global quando é declarada fora de qualquer função. Nesse caso:
– Pode ser acessada em qualquer parte do programa.
– Ela existe durante toda a execução do programa.
Escopo de Variável
• Variável Local (Escopo de função): variável declarada na lista de parâmetros da função ou definida dentro da função.
Exemplo:
...
int minha_fun (int x, int y) {
int i, j; /* x,y,i e j visíveis apenas dentro da função */
...
}
int main() {
x = i+j; /* erro: x, i e j não definidos */
return x;
}
Escopo de Variável
• Variável Global: Variável declarada fora das funções tem escopo de arquivo:
Exemplo:
#include <stdio.h>
int i; /* variavel global */
/* visivel em todo programa */
void incr_i() { i++;
} ...
void main() {
printf(”%d”, i);
}
Escopo de Variável
• Boa prática de programação:
– Deve-se evitar o uso de variáveis globais.
– As funções devem modificar apenas as suas
variáveis locais e as variáveis passadas a elas
como parâmetros.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int f1(int a, int b);
int f2(int b, int a);
int f3(int a, int b);
int main( ) {
int a=2, b=5, c=0;
float d=0;
printf("Ponto 1(main): a=%d b=%d c=%d d=%f \n", a, b, c, d);
c=f1(a, b);
printf("Ponto 5(main): a=%d b=%d c=%d d=%f \n", a, b, c, d);
return 0; }
int f1(int a, int b) { int c;
float d;
a=a+1;
b=b*2;
c=f2(a, b);
d= (float) a/b;
printf("Ponto 4(f1): a=%d b=%d c=%d d=%f \n", a, b, c, d);
return a+b; } int f2(int b, int a){
int c;
float d;
b=b+2;
a=a+1;
c=f3(b,a);
d= (float) a/b;
printf("Ponto 3(f2): a=%d b=%d c=%d d=%f \n", a, b, c, d);
return a+c;}
int f3(int a, int b){
int c;
float d;
a=a+1;
b=b+1;
c=a+b;
d= (float) b/a;
printf("Ponto 2(f3): a=%d b=%d c=%d d=%f \n", a, b, c, d);
return b+c; }
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int f1(int a, int b);
int f2(int b, int a);
int f3(int a, int b);
int main( ) {
int a=2, b=5, c=0;
float d=0;
printf("Ponto 1(main): a=%d b=%d c=%d d=%f \n", a, b, c, d);
c=f1(a, b);
printf("Ponto 5(main): a=%d b=%d c=%d d=%f \n", a, b, c, d);
return 0; }
int f1(int a, int b) { int c;
float d;
a=a+1;
b=b*2;
c=f2(a, b);
d= (float) a/b;
printf("Ponto 4(f1): a=%d b=%d c=%d d=%f \n", a, b, c, d);
return a+b; } int f2(int b, int a){
int c;
float d;
b=b+2;
a=a+1;
c=f3(b,a);
d= (float) a/b;
printf("Ponto 3(f2): a=%d b=%d c=%d d=%f \n", a, b, c, d);
return a+c;}
int f3(int a, int b){
int c;
float d;
a=a+1;
b=b+1;
c=a+b;
d= (float) b/a;
printf("Ponto 2(f3): a=%d b=%d c=%d d=%f \n", a, b, c, d);
return b+c; }
a, b, c, d: variáveis locais da função main() Visíveis apenas no escopo da função main()
a, b, c, d: variáveis locais da função f1() Visíveis apenas no escopo de f1()
a, b, c, d: variáveis locais da função f2() Visíveis apenas no escopo de f2()
a, b, c, d : variáveis locais da função f3()
Visíveis apenas no escopo de f3()
Comentários
1
2 /* Comentários são ignorados
3 pelo compilador C e não geram 4 nenhum tipo de código-objeto em 5 linguagem de máquina. Ou seja, o 6 computador não irá considerar os 7 comentários e nenhuma ação será
8 realizada em relação a eles 9 quando o programa for
10 executado. */
11 // comentário de uma única linha
12
Primeiro Programa em C
1
2 #include <stdio.h>
3
4 int main () 5 {
6 printf("Bem-vindo ao C!\n");
7
8 return 0;
9
10 }
Utilizando o Codeblocks
Compilando e
executando
Resultado
Primeiro Programa em C
1
2 #include <stdio.h>
3
4 int main () 5 {
6 printf("Bem-vindo ao C!\n");
7
8 return 0;
9
10 }
system ("PAUSE");
#include <stdlib>
34
Exemplo simples:
• Algoritmo:
– Leia um número
– Leia outro número
– Some os dois números – Apresente o resultado
Desenvolva um programa em C que leia
dois números e apresente o resultado
da soma entre eles.
35
Traduzindo em um programa C
int main () {
}
printf ("Digite o primeiro numero=");
printf ("Digite o segundo numero=");
scanf("%d", &numero1);
scanf("%d", &numero2);
int numero1;
int numero2;
#include <stdio.h>
soma=numero1 + numero2;
int soma;
printf("A soma dos dois numeros eh= %d", soma);
system ("pause");
return 0;
#include <stdlib.h>
Onde estão os erros?
#include <stdlib.h>
int main () {
int Numero1;
int Numero2;
int soma;
printf ("Digite o primeiro numero=“) scanf("%d", numero1);
printf ("Digite o segundo numero=“) scanf("%d", numero2);
soma=numero1 + numero2;
printf("A soma dos dois numeros eh= soma”);
system (pause);
return 0;
}
Onde estão os erros?
#include <stdlib.h>
#include <stdio.h>
int main () {
int numero1;
int numero2;
int soma;
printf ("Digite o primeiro numero=“);
scanf("%d", &numero1);
printf ("Digite o segundo numero=“);
scanf("%d", &numero2);
soma=numero1 + numero2;
printf("A soma dos dois numeros eh= %d”,soma);
system (“pause”);
return 0;
}
• int idade atual;
• int valor_total;
• int 1salario;
• int numero1, numero2, numero3;
• int N1; N2; N3;
• int V1, V2, V3;
• int v1=5, v2=5, v3=5;
• int v1=v2=v3=5;
• int _salario;
Jogo dos erros
39
Comandos de atribuição
40
Comando de atribuição
• Atribui o valor da direita à variável da esquerda
• O valor pode ser:
– uma constante, – uma variável ou – uma expressão
• Exemplos
x = 4; // lemos: x recebe 4
y = x + 2; // lemos: y recebe (x mais 2)
y = y + 4; // lemos: y recebe (y mais 4)
valor = 2.5; // lemos: valor recebe 2.5
41
Operadores de Atribuição
Equivale a x = x % y x %= y
%=
Equivale a x = x / y x /= y
/=
Equivale a x = x * y x *= y
*=
Equivale a x = x – y x -= y
-=
Equivale a x = x + y x += y
+=
Atribui o valor de y a x x = y
=
Comentário Exemplo
Operador
42
Aritmética em C
43
Operação em C Operador Aritmético
Expressão Algébrica
Expressão em C
Adição + f + 7 f + 7
Subtração - p – c p - c
Multiplicação * bm b * m
Divisão / x/y ou ou x÷y
x/y Módulo ou
resto da divisão entre 2
inteiros
% r mod s r % s
x y _
Operadores aritméticos
44
Entrada e Saída de
Dados
45
Entrada de Dados
• Função scanf()
scanf ("formatos", &var1, &var2,...)
Exemplos:
#include <stdlib.h>
#include <stdio.h>
int main(void) {
int numero1, numero2, numero3, numero4, numero5;
scanf("%d", &numero1);
scanf("%d %d", &numero2, &numero3);
scanf("%d,%d", &numero4, &numero5);
system("PAUSE");
}
46
Entrada de Dados
• Função scanf()
scanf ("formatos", &var1, &var2,...)
Outros Exemplos:
int i, j;
float x;
char c, nome[20];
scanf("%d", &i);
scanf("%d %f", &j, &x);
scanf("%c", &c);
scanf("%s", &nome);
Discutiremos esse tópico com mais
detalhes em slides futuros...
47
Entrada de Dados
• Função scanf()
Código Significado
%c Lê um único caractere
%d Lê um decimal inteiro
%i Lê um decimal inteiro (não pode ser octal ou hexadecimal)
%u Lê um decimal sem sinal
%e Lê um número em ponto flutuante com sinal opcional
%f Lê um número em ponto flutuante com ponto opcional
%g Lê um número em ponto flutuante com expoente opcional (double)
%o Lê um número em base octal
%s Lê uma string
%x Lê um número em base hexadecimal
%p Lê um ponteiro
48
Algoritmo Na Linguagem C...
#include <stdio.h>
#include <stdlib.h>
int main() {
int n1, n2;
scanf ("%d",&n1);
scanf ("%d",&n2);
system("PAUSE");
return 0;
}
ler n1 ler n2
ler n1 n2 scanf ("%d %d",&n1,&n2);
Entrada de Dados (Exemplo)
49
Saída de Dados
• Função printf()
printf ("formatos", var1, var2,...)
Exemplos:
int i, j;
float x;
char c;
printf("%d", i);
printf("%d %f", j, x);
printf("%c", c);
%d inteiro
%f float
%lf double
%c char
%s string
50
Saída de Dados (Exemplo)
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j;
float x;
i = 1;
j = 2;
x = 3;
printf("%d", i);
printf("%d %f", j, x);
system("PAUSE");
return 0;
}
51
Saída de Dados (Exemplo)
#include <stdio.h>
#include <stdlib.h>
int main() {
// definicao de variaveis float n1, n2, n3, media;
// entrada de dados
scanf ("%f %f %f",&n1, &n2, &n3);
// operacao
media=(n1+n2+n3)/3;
// saida de dados
printf("%f", n1);
printf("%f", n2);
printf("%f", n3);
printf("%f", media);
system("PAUSE");
return 0;
}
52
Saída de Dados (Exemplo)
#include <stdio.h>
#include <stdlib.h>
int main() {
// definicao de variaveis int i, j;
float x;
//entrada de dados scanf("%d", &i);
scanf("%d %f", &j, &x);
// exibicao de dados printf("I= %d\n", i);
printf("J= %d\nX= %f\n", j, x);
system("PAUSE");
return 0;
}
53
O que é exibido em cada instrução?
Considere que x=2; e y=3;
1 printf ("%d", x);
2 printf ("%d", x+y);
3 printf ("x=");
4 printf ("x=%d", x);
5 printf ("%d= %d", x+y, y+x);
6 z= x + y;
7 scanf ("%d %d", &x, &y);
8 /* printf ("x + y = %d", x+y); */
9 printf ("\n");
10 // printf("%d", x*y);
54
Entrada e Saída
Exemplo 8
#include <stdio.h>
#include <stdlib.h>
int main() {
float n1, n2, n3, media;
printf("Digite 3 notas: ");
scanf ("%f %f %f",&n1, &n2, &n3);
media=(n1+n2+n3)/3;
printf ("Media: %.2f\n",media);
system("PAUSE");
return 0;
}
Exemplo 7
#include <stdio.h>
#include <stdlib.h>
int main() {
float n1, n2, n3, media;
scanf("%f %f %f",&n1,&n2,&n3);
media=(n1+n2+n3)/3;
printf ("%f",media);
system("PAUSE");
return 0;
}
55
Algoritmo:
Ler primeiro número;
Ler segundo número;
Ler terceiro número Calcular o produto Apresentar resultado
Na Linguagem C...
Ler 3 números e calcular o produto e apresentar o resultado
Problema:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n1, n2, n3, produto;
system("PAUSE");
return 0;
}
56
Algoritmo:
Ler primeiro número;
Ler segundo número;
Ler terceiro número Calcular o produto Apresentar resultado
Na Linguagem C...
Ler 3 números e calcular o produto e apresentar o resultado
Problema:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n1, n2, n3, produto;
printf("Forneca n1=“);
scanf("%d", &n1);
printf("Forneca n2=“);
scanf("%d", &n2);
printf("Forneca n3=“);
scanf("%d", &n3);
produto= n1*n2*n3;
printf(“Produto=%d”,produto);
system("PAUSE");
return 0;
}
57
Algoritmo:
Ler primeiro número;
Ler segundo número;
Ler terceiro número Calcular o produto Apresentar resultado
Na Linguagem C... (outra forma) Problema:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n1, n2, n3, produto;
printf("Forneca n1 n2 n3=“);
scanf("%d %d %d", &n1, &n2, &n3);
produto= n1*n2*n3;
printf(“Produto=%d”,produto);
system("PAUSE");
return 0;
}
Ler 3 números e calcular
o produto e apresentar o
resultado
58
Algoritmo:
Ler primeiro número;
Ler segundo número;
Ler terceiro número Calcular o produto Apresentar resultado
Na Linguagem C... (mais uma) Problema:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n1, n2, n3, produto;
printf("Forneca n1 n2 n3=“);
scanf("%d,%d,%d", &n1, &n2, &n3);
produto= n1*n2*n3;
printf(“Produto=%d”,produto);
system("PAUSE");
return 0;
}
Ler 3 números e calcular
o produto e apresentar o
resultado
59
Dicas...
• Preste MUITA atenção ao digitar o seu programa. É muito fácil “esquecer ” um ponto-e-vírgula (;), ou esquecer de fechar chaves {} e parênteses ().
• Leia com cuidado as mensagens do compilador. A maioria das mensagens de warning são causadas por erros de lógica ou digitação. Por exemplo, ao digitar “=” ao invés de “==” em uma expressão relacional, o compilador gera um warning.
• Na linguagem C, caracteres minúsculos e maiúsculos são diferenciados.
• As variáveis num1 , Num1 , NUm1 , e NUM1 são todas diferentes, mas essas diferenças são difíceis de notar.
• Procure utilizar nomes significativos para variáveis. Ao invés de a, b e c, você pode utilizar algo como idade, altura e peso .
• Você não pode utilizar palavras reservadas como int, if, for, while, etc., como nome de suas variáveis.
• Fonte: http://www.ime.usp.br/~hitoshi/introducao/03-Fundamentos.pdf
Dicas:
61
Expressão Relacional
62
Expressão Relacional
• Considere a seguinte declaração:
int x=5, y=6, z=10;
• Qual o resultado para as seguintes expressões?
(x>y)
(x>(y+z)) ((x*2)<= z) (z != (2*x)) ((2*x) == z) (y <= (z-4))
((-x+2 + (2*y+1) + z*2)!= 21) F
F V
F V V
V
63
Comando de Repetição
while()
...
while(<condição>) {
<comando_1>;
<comando_2>;
<comando_3>;
}
...
Comando de Repetição: while()
/* permite repetir um conjunto de
comandos enquanto uma condição for
verdadeira. */
• Escreva um programa em C que leia um
número inteiro positivo n e calcula o fatorial de n.
Atividade I:
Uma solução: Atividade I
#include <stdio.h>
int main() { int n;
int i = 1;
int fat = 1;
printf("Digite n: ");
scanf ("%d", &n);
while (i <= n) {
fat *= i;
i++;
}
printf("fat(%d) = %d\n", n, fat);
return 0;
}
67
Comando de Repetição
for()
/* Sintaxe */
for (<inicialização>; <condição>; <incremento>) {
<comandos>
}
Comando de Repetição: for()
#include <stdio.h>
int main() {
int i;
for (i=1;i<10;i++)
printf("valor de i: %d \n",i);
return 0;
}
Comando de Repetição: for()
#include <stdio.h>
int main() {
int i;
for (i=1;i<10;i++)
printf("valor de i: %d \n",i);
return 0;
}
#include <stdio.h>
int main () {
int n, cont, fat;
printf("numero para calculo: ");
scanf("%d", &n);
fat = 1;
for (cont = 1; cont <= n; cont=cont+1) fat = fat * cont;
printf("fat(%d) = %d\n", n, fat);
return 0;
}
Outra solução: Atividade I
71
funções
#include <stdio.h>
int fat(int n);
int main() {
int n, f;
printf("Digite n: ");
scanf ("%d", &n);
f = fat(n);
printf("fat(%d) = %d\n", n, f);
return 0;
}
int fat(int n) {
int i, resultado = 1;
for (i = 1; i<=n; i++) resultado *= i;
return resultado;
}
Outra solução: Atividade I
• Escreva um programa em C que apresente o quadrado dos n primeiros números.
Atividade II:
Atividade II:
Uma solução poderia ser:
1. Utilize a variável do tipo inteiro n para armazenar o limite da contagem
2. Utilize a variável do tipo inteiro contador como um contador de 1 a n;
3. Utilize uma variável do tipo inteiro quadrado para armazenar o cálculo do quadrado;
4. Escreva uma mensagem para o usuário;
5. Leia o valor de n;
6. Inicialize contador com 1;
7. Enquanto contador menor ou igual a n faça:
(a) calcule o quadrado de n
(b) apresente o valor de quadrado;
(c) incremente em 1 a variável contador;
8. fim
Uma solução: Atividade II
#include <stdio.h>
#include <stdlib.h>
int main() {
int contador=1, n, quadrado;
printf(" Ate onde deseja calcular? (forneca um inteiro): " );
scanf("%d", &n);
while (contador <=n) {
quadrado= contador * contador;
printf (" O quadrado de %d eh %d \n", contador, quadrado );
contador= contador+1;
}
system ("pause");
return 0;
}
• Escreva um programa em C que apresente os números ímpares até n .
Atividade III:
Atividade III:
Uma solução poderia ser:
1. Utilize a variável do tipo inteiro n para armazenar o limite da contagem;
2. Utilize a variável do tipo inteiro contador como um contador de 1 a n;
3. Imprima uma mensagem para o usuário;
4. Leia o valor de n;
5. Inicialize contador com 1;
6. Enquanto contador menor ou igual a n faça:
(a) apresente o valor de contador;
(b) incremente em 2 a variável contador;
7. fim
Uma solução: Atividade III
#include <stdio.h>
#include <stdlib.h>
int main() {
int contador=1, n;
printf(" Ate onde deseja contar? (forneca um inteiro): ");
scanf("%d", &n);
while (contador <=n) {
printf("%d \n", contador);
contador= contador+2;
}
system ("pause");
return 0;
}
• Escreva um programa em C para que calcule os quadrados e os cubos dos números de 0 a 10 e apresente os resultados
Atividade IV:
Atividade IV:
Uma solução poderia ser:
1. imprima uma mensagem com o título (numero quadrado cubo);
2. Utilize a variável to tipo inteiro contador como um contador de 0 a 10
3. Inicialize contador com 0;
4. enquanto contador menor ou igual a 10 faça:
(a) calcule e apresente o quadrado de contador (b) calcule e apresente o cubo de contador
(c) incremente em 1 a variável contador
5. fim
Uma solução:
#include <stdio.h>
#include <stdlib.h>
int main () {
int contador, quadrado , cubo;
contador=0;
/* programa */
printf("numero quadrado cubo\n");
while ( contador <= 10) {
quadrado= contador*contador;
cubo= contador*contador*contador;
printf(" %d %d %d\n", contador, quadrado, cubo);
contador=contador+1;
}
system ("pause");
return 0;
}
• Altere o programa anterior para respeitar as tabulações, conforme resultado abaixo
Desafio:
Dica: teste o uso de \t no printf
• Leia um número inteiro n e, em seguida, leia n números e calcule a soma. Exemplo:
Se n = 5 e os n(5) números forem: 5 12 8 7 3
Atividade V:
soma= 5 + 12 + 8 + 7 + 3
Atividade V
1. Declare variáveis para armazenar a quantidade de números (n) a serem lidos, a soma (soma)e cada número lido
(num);
2. imprima uma mensagem para o usuário saber o que fazer 3. leia pelo teclado a quantidade de números a serem somados
e armazene na variável n
4. enquanto n maior que zero faça:
(a) leia pelo teclado o número na variável num
(b) acumule na variável soma o número lido e armazenado em num (c) diminua 1 da variável n
5. imprima o conteúdo da variável soma 6. fim
Uma solução poderia ser:
#include <stdio.h>
#include <stdlib.h>
int main () {
int n, num , soma;
soma=0;
/* programa */
printf ("Digite a quantidade de numeros a serem somados: " );
scanf ("%d", &n );
while ( n > 0) {
printf ("Digite um numero: " );
scanf ("%d", &num );
soma = soma + num;
n=n-1;
}
printf ("Soma dos numeros eh= %d \n" , soma);
system ("pause");
return 0;
}
Exemplo de Solução: atividade V
Desenvolva programas em C para:
1) Ler dois inteiros x e y. Calcular e apresentar o resultado de x . 2) Ler um inteiro x, calcular e apresentar o valor do fatorial de
x;
3) Calcular e escrever o menor n tal que 1 + 2 + 3 + 4 + 5 + 6 +...+ n >1000.
4) Ler um inteiro x, calcular seu quadrado e apresentar o resultado até que seja fornecido o valor 0 para x.
5) Ler um inteiro x, calcular e apresentar os múltiplos do inteiro 2 menores que x (exemplo: 0, 2, 4, 6, 8, 10, 12, 14, 16, ...x).
Mais exercícios:
y
87