• Nenhum resultado encontrado

Introdução à Computação

N/A
N/A
Protected

Academic year: 2022

Share "Introdução à Computação"

Copied!
537
0
0

Texto

(1)

Mauro Cesar Bernardes 20/Maio/2014

Introdução à Computação

- Linguagem C: aulas 01 , 02 e 03

(2)

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

(3)

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

(4)

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

(5)

Processo de Interpretação

Programa fonte Exemplo: teste.py

print("Olá mundo!")

(6)

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

(7)

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");

}

(8)

Compiladores e a

Linguagem C

(9)

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)

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)

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)

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)

13

CodeBlocks

Para saber mais: http://grauna.ime.usp.br/mod/url/view.php?id=1887

(14)

14

Usando o CodeBlocks

#include <stdio.h>

#include <stdlib.h>

main() {

printf ("Alo mundo!");

system("PAUSE");

}

(15)

15

Usando o CodeBlocks

(16)

16

Usando o CodeBlocks

(17)

Introdução à Linguagem C

(18)

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)

19

Exemplo 1

/* meu primeiro programa C */

#include <stdio.h>

#include <stdlib.h>

main() {

printf ("Alo mundo!"); //mostra

system("PAUSE"); //fica parado

}

(20)

20

Declaração de

variáveis

(21)

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!

(22)

Escopo de Variável em

linguagem C

(23)

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.

(24)

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;

}

(25)

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);

}

(26)

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.

(27)

#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; }

(28)

#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()

(29)

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

(30)

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 }

(31)

Utilizando o Codeblocks

Compilando e

executando

(32)

Resultado

(33)

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)

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)

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>

(36)

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;

}

(37)

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;

}

(38)

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)

39

Comandos de atribuição

(40)

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)

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)

42

Aritmética em C

(43)

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)

44

Entrada e Saída de

Dados

(45)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

59

Dicas...

(60)

• 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)

61

Expressão Relacional

(62)

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)

63

Comando de Repetição

while()

(64)

...

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. */

(65)

• Escreva um programa em C que leia um

número inteiro positivo n e calcula o fatorial de n.

Atividade I:

(66)

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)

67

Comando de Repetição

for()

(68)

/* 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;

}

(69)

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;

}

(70)

#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)

71

funções

(72)

#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

(73)

• Escreva um programa em C que apresente o quadrado dos n primeiros números.

Atividade II:

(74)

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

(75)

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;

}

(76)

• Escreva um programa em C que apresente os números ímpares até n .

Atividade III:

(77)

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

(78)

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;

}

(79)

• 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:

(80)

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

(81)

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;

}

(82)

• Altere o programa anterior para respeitar as tabulações, conforme resultado abaixo

Desafio:

Dica: teste o uso de \t no printf

(83)

• 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

(84)

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:

(85)

#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

(86)

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)

87

Comando de Seleção

Simples e Composta

(88)

Comando de Seleção Simples e Composta

Seleção Simples Seleção Composta

if (<condição>) {

<comando_1>;

<comando_2>;

...

<comando_n>

}

if (<condição>) {

<comando_1>;

<comando_2>;

...

<comando_n>

}

else {

<outro-comando_1>;

<outro-comando_2>;

...

<outro-comando_n>

}

(89)

Comando de Seleção Simples e Composta

Seleção Simples Seleção Composta

if (<condição>) <comando>;

if (<condição>) <comando>;

else

<outro-comando>;

Observação: Se dentro do if ou do else

existir apenas um comando, não é necessário

colocá-lo entre chaves.

(90)

Comando de Seleção Simples

...

if (<condição>) {

<comando_1>;

<comando_2>;

...

<comando_n>

}

...

Fluxo do programa

V

F

(91)

Comando de Seleção Composta

...

if (<condição>) {

<comando_1>;

<comando_2>;

...

<comando_n>

}

else {

<comando_1>;

<comando_2>;

...

<comando_n>

} ...

Fluxo do programa

V

F

(92)

• Escreva um programa em C que leia um número inteiro n e chama uma função absoluto(n) devolve o seu

valor absoluto.

• Uma solução poderia ser:

1. imprima uma mensagem para o usuário saber o que fazer;

2. leia pelo teclado um número inteiro em uma variável do tipo inteiro n ;

3. Chama a função absoluto() passando n como parâmetro

4. Na função

1. se n for negativo, transforme-o para positivo;

2. Retorne o valor para o programa principal

5. De volta ao programa principal

1. Imprimir resultado 2. fim

Exemplo 1

(93)

#include <stdio.h>

#include <stdlib.h>

int absoluto (int n1);

int main() {

int n;

printf ("Digite um numero inteiro: ");

scanf ("%d", &n);

printf("%d \n", absoluto(n));

system ("pause");

return 0;

}

int absoluto (int n1) {

if (n1<0)

return -n1;

else

return n1;

}

Exemplo 1: solução

(94)

Exemplo 1: resultado

(95)

• Escreva um programa em C que leia 2 números inteiros e imprima o maior.

• Uma solução poderia ser:

1. imprima uma mensagem para o usuário saber o que fazer

2. leia pelo teclado dois números inteiros num1 e num2 3. se num1 maior que num2

(a) maior = num1 4. senão

(a) maior = num2

5. imprime o conteúdo da variável maior 6. fim

Exemplo 2

(96)

#include <stdio.h>

#include <stdlib.h>

int main () {

int num1, num2, maior;

printf ("Forneca o primeiro numero:" );

scanf ("%d", &num1);

printf ("Forneca o segundo numero:" );

scanf ("%d", &num2);

if ( num1 > num2 ) {

maior = num1;

}

else {

maior = num2 ; }

printf("O maior numero e: %d \n", maior);

system ("pause");

return 0;

}

Exemplo 2: solução

(97)

Exemplo 2: resultado

(98)

#include <stdio.h>

#include <stdlib.h>

int main () {

int num1, num2;

printf ("Forneca o primeiro numero:" );

scanf ("%d", &num1);

printf ("Forneca o segundo numero:" );

scanf ("%d", &num2);

if ( num1 > num2 )

printf("O numero %d eh maior que %d. \n", num1, num2);

if (num1 < num2)

printf("O numero %d eh maior que %d. \n", num2, num1);

if (num1 == num2)

printf ("Os dois numeros lidos (%d) sao iguais. \n", num1);

system ("pause");

return 0;

}

Exemplo 2: outra solução

(99)

Exemplo 2: outra solução

(100)

#include <stdio.h>

#include <stdlib.h>

int main () {

int num1, num2;

printf ("Forneca o primeiro numero:" );

scanf ("%d", &num1);

printf ("Forneca o segundo numero:" );

scanf ("%d", &num2);

if ( num1 != num2 ) { if (num1 > num2)

printf("O numero %d eh maior que %d. \n", num1, num2);

else if (num1 < num2)

printf("O numero %d eh maior que %d. \n", num2, num1);

}

else

printf ("Os dois numeros lidos (%d) sao iguais. \n", num1);

system ("pause");

return 0;

}

Exemplo 2: uma solução mais

elaborada...

(101)

Exemplo 2: uma solução mais

elaborada...

(102)

• Dados um número inteiro n>0 e uma sequência com n números inteiros, determinar a soma dos inteiros positivos da sequência.

• Por exemplo, para n=7 e para a sequência com n=7 números inteiros 6 −2 7 0 −5 8 4

• o seu programa deve escrever o número 25.

Exemplo 3

(103)

Exemplo 3

Uma solução poderia ser:

1. imprima uma mensagem para o usuário saber o que fazer

2. leia pelo teclado a quantidade de números da sequencia na variável n

3. inicialize uma variável soma com zero 4. enquanto n maior que zero faça:

(a) leia pelo teclado o número da sequência na variável num

(b) se num maior que zero

i. acumule na variável soma o número lido (c) diminua 1 da variável n

5. imprima na tela a soma final

6. fim

(104)

1 #include <stdio.h>

2 #include <stdlib.h>

3 int main () 4 {

5 /* declarações */

6 int n, num , soma;

7 soma=0;

8 /* programa */

9 printf ("Digite a quantidade de numeros da sequencia : " );

10 scanf ("%d", &n );

11 while ( n > 0) 12 {

13 printf ("Digite um numero: " );

14 scanf ("%d", &num );

15 if ( num > 0)

16 soma = soma + num;

17 n=n-1;

18 }

19 printf ("Soma dos numeros positivos da sequencia = %d\n" , soma);

20 system ("pause");

21 return 0;

22 }

Exemplo 3: uma solução

(105)

Desenvolva programas em C para:

1) Ler dois inteiros positivos 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

(106)

Exercício 1: uma solução

#include <stdio.h>

#include <stdlib.h>

int main () {

int x, y, resultado=1,contador=1;

printf("Forneca o valor de x= ");

scanf ("%d", &x);

printf("Forneca o valor de y= ");

scanf ("%d", &y);

while (contador <= y) {

resultado= resultado * x;

contador= contador + 1;

}

printf ("\n%d elevado a %d= %d \n",x, y, resultado);

system ("pause");

return 0;

}

(107)

Exercício 1: uma solução

(108)

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

(109)

Exercício 2: uma solução

#include <stdio.h>

#include <stdlib.h>

int main () {

int x, fatorial=1;

printf("Forneca o valor de x= ");

scanf ("%d", &x);

while (x > 1) {

fatorial= fatorial * x;

x= x -1;

}

printf ("\nO fatorial eh: %d \n",fatorial);

system ("pause");

return 0;

}

(110)

Exercício 2: uma solução

(111)

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

(112)

Exercício 3: uma solução

#include <stdio.h>

#include <stdlib.h>

int main () {

int n=0, soma=0;

while (soma < 1000) {

soma= soma + n;

if (soma < 1000) n= n +1;

}

printf ("\nO resultado eh: %d \n", n);

system ("pause");

return 0;

}

(113)

Exercício 3: uma solução

(114)

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

(115)

Exercício 4: uma solução

#include <stdio.h>

#include <stdlib.h>

int main () {

int x;

printf ("forneca o valor de x= ");

scanf("%d", &x);

while (x != 0) {

printf ("o quadrado de %d eh = %d", x, x*x);

printf ("\n\nforneca o valor de x= ");

scanf ("%d", &x);

}

system ("pause");

return 0;

}

(116)

Exercício 4: uma solução

(117)

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

(118)

Exercício 5: uma solução

#include <stdio.h>

#include <stdlib.h>

int main () {

int x, contador=0, multiplo;

printf ("forneca o valor de x= ");

scanf("%d", &x);

printf ("os multiplos de 2 menores (<) que %d sao: \n", x);

while (multiplo < x) {

multiplo= contador * 2;

if (multiplo < x)

printf (" %d ", multiplo);

contador= contador + 1;

}

system ("pause");

return 0;

}

Atualizado em 22/08, 14h45min

(119)

Exercício 5: uma solução

Referências

Outline

Documentos relacionados

Ensaios foram conduzidos em culturas de algodão em Jaboticabal, SP, com o objetivo de verificar a atratividade dos feromônios gossyplure e hexalure associados a tipos de

Artigo 11. As eventuais condições aplicáveis à reutilização de documentos não são discriminatórias para categorias de reutilização comparáveis, incluindo a

● Linguagens de programação modernas são de alto nível (pessoas podem entender os programas).. ● O computador entende código de baixo nível (pessoas não conseguem

Assinale a afirmativa CORRETA. A) Programas escritos em linguagem assembly são portáveis. B) Interpretador é um programa que, a partir de um código fonte em linguagem de

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Wick, Pollock &amp; Jefferson (2011, p.4) afirmam que “A extensão a qual organizações estão dispostas a custear o aprendizado, e o cuidado com que isso é

Este trabalho teve por objetivo o estudo da dimensão das doenças crônicas, especificamente o diabetes mellitus, visando à elaboração de um modelo de processo

O problema de como garantir a autenticidade do acesso do usuário de sites de ensino à distância levou a uma busca de soluções que pudessem atender as exigências