Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um...
Transcript of Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um...
![Page 1: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/1.jpg)
Curso de Linguagem C
Wellington Felix
![Page 2: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/2.jpg)
Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix
C++ é uma extensão da linguagem C
Histórico
![Page 3: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/3.jpg)
Apostila: Curso de Linguagem C – UFMG, http://www.inf.ufsc.br/~fernando/ine5412/C_UFMG.pdf
Kernighan, Brian W. – C, A Linguagem de Programação Padrão Ansi, Editora Campus
Bibliografia
![Page 4: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/4.jpg)
Compilador utilizado para converter código fonte em código de maquina executável
Pode ser baixado em: http://www.bloodshed.net/devcpp.html
Devcpp
![Page 5: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/5.jpg)
Estruturação de um programa em Cdiretivas para o pré-processador
declaração de variáveis globais
int main (int argc, char * argv[]){
declaração de variáveis locais da função main
comandos da função main}
![Page 6: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/6.jpg)
Diretiva #include permite incluir uma biblioteca
Bibliotecas contêm funções pré-definidas, utilizadas nos programas
Diretivas para o processadorTambém chamada de biblioteca
Biblioteca Usos
#include <stdio.h> Funções de entrada e saída
#include <stdlib.h> Funções padrões
#include <math.h> Funções matemáticas
#include <string.h> Funções de texto
![Page 7: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/7.jpg)
“Hello world” é referência ao programa mais simples a ser desenvolvido em uma linguagem de programação.
Normalmente, sua função é imprimir a mensagem “Hello World” (“Ola Mundo”) na tela do seu computador.
Primeiro Programa“Hello World”
#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){ printf (“Hello World!”); system(“PAUSE”);}
![Page 8: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/8.jpg)
Termine todos os comandos com ; Quando ocorrer um erro de compilação, dê um
duplo clique sobre a mensagem de erro para destacar o comando errado no programa
Verifique também a linha anterior, que pode ser a responsável pelo erro, especialmente se faltar o ;
Use comentários. Eles são iniciados por // ou entre /* */◦ /* isto é um comentário */◦ // isto também é um comentário
Dicas
![Page 9: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/9.jpg)
Usando comentários no“Hello World”
/* Meu primeiro programa em C */#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){ printf (“Hello World!”); // Imprime system(“PAUSE”); // Fica parado}
![Page 10: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/10.jpg)
Variáveis são utilizadas para armazenamento de informações durante a execução do programa.◦ Cada variável pode armazenar um único tipo de
informação Toda variável precisa ser declarada antes de
ser utilizada. Os principais tipos de variáveis são: int,
float, double e char Uma variável pode ser inicializada durante
sua declaração.
Declaração de Variáveis
![Page 11: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/11.jpg)
Exemplo de declaração de variáveis em C
#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
int idade;float altura;int x, y=1, z;double a = 1.5;char letra = ‘c’;
...}
![Page 12: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/12.jpg)
Atribui o valor da direita à variável da esquerda
O valor pode ser:◦ uma constante◦ uma variável ◦ uma expressão
Atribuição
idade = 22; // idade recebe 22altura = 1.8; // altura recebe 1.8x = 4; // x recebe 4a = 1.5 + x; // a recebe 1.5 + xx = x + 1; // Incrementa x de 1letra = ‘c’; // letra recebe c
![Page 13: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/13.jpg)
Função scanf ()scanf ("formatos", &var1, &var2,...);
Exemplos:int i, j;
float x;
char c;
scanf("%d", &i);
scanf("%d %f", &j, &x);
scanf("%c", &c);
scanf("%s", &nome);
Leitura de dados
%d inteiro decimal%f float%lf double%c char%s string
![Page 14: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/14.jpg)
Operador
Exemplo Comentário
+ b + c Adição
- b – c Subtração
* b * c Multiplicação
/ b / c Divisão
% b % c Resto da divisão
++ b++ Incrementa de 1
-- b-- Decrementa de 1
Operadores Matemáticos
![Page 15: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/15.jpg)
Operação de AtribuiçãoOperador
Exemplo Comentário
= a = b Atribuição
+= a += b Equivalente “a = a + b”
-= a -= b Equivalente “a = a - b”
*= a *= b Equivalente “a = a * b”
/= a /= b Equivalente “a = a / b”
% a %= b Equivalente “a = a % b”
![Page 16: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/16.jpg)
Impressão 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);
printf("%s", nome);
%d inteiro%f float%lf double%c char%s string
![Page 17: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/17.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
// declaracao de variaveisint idade;float altura, imc;
// leitura de dadosprintf(“Digite sua idade: “);scanf(“%d”, &idade);printf(“Digite sua altura: “);scanf(“%f”, &altura);
// processamentoimc = idade / (altura * altura);
// saida de dadosprintf(“IMC = %f”, imc); system(“PAUSE”);
}
![Page 18: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/18.jpg)
Funções MatemáticasFunção Exemplo Comentário
ceil Arredonda para cima
cos Cosseno
exp Exponencial
fabs Absoluto
floor Arredonda para baixo
log Logaritmo natural
log10 Logaritmo decimal
pow Potência
sin Seno
sqrt Raiz quadrada
tan Tangente
![Page 19: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/19.jpg)
Os comandos de controle de fluxo são a essência de qualquer linguagem, porque governam o fluxo da execução do programa
Estrutura de Decisão ou Controle de Fluxo
![Page 20: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/20.jpg)
O comando IF é responsável por oferecer duas opções de fluxo de processamento, uma caso a condição avaliada der verdadeiro e outra caso ela der falso.
Comando IF
inicio
fim
instruções
condição?sim não
instruções
![Page 21: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/21.jpg)
Comando IF
Se...Então...Se NãoSe <condição> então
<instruções>
Se não
<instruções> Em Linguagem Cif (<condição>) {
<instruções>
}
else {
<instruções>
}
![Page 22: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/22.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
// declaracao de variaveisint var;
// processamentoscanf(“%d”, &var);
if (var < 100){printf(“%d eh menor que 100“, var);
else {printf(“%d eh maior ou igual a 100“,
var);}
system(“PAUSE”);}
![Page 23: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/23.jpg)
Leia dois números e imprima a diferença entre o número maior e o menor.
Exercício
![Page 24: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/24.jpg)
O comando IF pode oferecer um processamento diferenciado apenas quando, a condição avaliada der verdadeiro.
Comando IF (caso degenerado)
inicio
fim
condição?sim
instruções
![Page 25: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/25.jpg)
Comando IF
Se...EntãoSe <condição> então
<instruções>
Em Linguagem Cif (<condição>) {
<instruções>
}
![Page 26: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/26.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
// declaracao de variaveisint var;
// processamentoscanf(“%d”, &var);
if (var < 100){printf(“%d eh menor que 100“, var);
}
system(“PAUSE”);}
![Page 27: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/27.jpg)
Faça um programa que sorteia um número (use a função rand()) de 0 a 10 e solicite para o usuário advinha-lo. Imprima “acertou” caso o número seja descoberto, e “errou” caso tenha escolhido o numero errado.
Faça um programa que calcule o Índice de Massa Corpórea (IMC) e classifique se a pessoa está com subpeso, normal, sobrepeso ou obesa.
Exercício
![Page 28: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/28.jpg)
O propósito do comando SWITCH-CASE é oferecer uma forma mais direta de obter um mecanismo de seleção para múltiplas opções.
Comando SWITCH - CASE
inicio
fim
opção?
caso opção 1 caso opção 2 caso opção 3nenhuma das
anteriores...
![Page 29: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/29.jpg)
Comando Switch-Case
Comute...casoComute <condição>
caso valor1
<instruções>
caso valor2
<instruções>
...
caso nenhuma dela
<instruções>
Em Linguagem Cswitch (<condição>) {
case valor1:
<instruções>
break;
case valor2:
<instruções>
break;
...
default:
<instruções>
}
![Page 30: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/30.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
// declaracao de variaveisint opcao;
// processamentoscanf(“%d”, &opcao);
switch (opcao){case 1:
printf(“Voce escolheu a opcao 1”);break;
case 2:printf(“Voce escolheu a opcao 2”);break;
case 3:printf(“Voce escolheu a opcao 3”);break;
default:printf(“Outra opcao”);break;
}
system(“PAUSE”);}
![Page 31: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/31.jpg)
Fazer uma calculadora que realize as operações de adição, subtração, multiplicação, divisão, potência.
Exercícios
![Page 32: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/32.jpg)
Se uma ação se repete em um algoritmo, em vez de escrevê-la várias vezes, em certos casos podemos resumir anotando uma vez só e solicitando que ela se repita, usando uma das estruturas de repetição.
Podemos executar uma ação (ou um conjunto de ações) um número definido ou indefinido de vezes, ou enquanto um estado permanecer ou até que um estado seja atingido
Estruturas de Repetição
![Page 33: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/33.jpg)
Comando FOR
Para...até...repetirPara <var> = <inicio> até <fim> repetir
<instruções>
Em Linguagem Cfor ( var=inicio; var<=fim; var++) {
<instruções>
}
inicio
fim
var = inicio
operação a ser repetida
var++;
var <= fim
simnão
![Page 34: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/34.jpg)
Exemplo/* contando de 1 a 10 */#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
// declaracao de variaveisint var;
// processamentofor ( var = 1; var <= 10; var++) {
printf(“%d “, var);}
system(“PAUSE”);}
![Page 35: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/35.jpg)
Comando WHILE
Enquanto...Repetir
enquanto (condição) repetir
<instruções>
Em Linguagem C while (<condição>) {
<instruções>
}
inicio
fim
condição inicial
operação a ser repetida
atualiza condição
condição final ?
nãosim
![Page 36: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/36.jpg)
Exemplo/* contando de 1 a 10 */#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
// declaracao de variaveisint contador;
// processamentocontador = 1;while (contador <= 10) {
printf(“%d “, contador);contador++;
}
system(“PAUSE”);}
![Page 37: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/37.jpg)
Comando DO - WHILE
inicio
fim
contador inicial
operação a ser repetida
atualiza condição
condição final ?
não
sim
Em Linguagem C do {
<instruções>
} while (<condição>);
Repetir ... Enquanto
repita
<instruções>
enquanto (condição)
![Page 38: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/38.jpg)
Exemplo/* contando de 1 a 10 */#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
// declaracao de variaveisint contador;
// processamentocontador = 1;do {
printf(“%d “, contador);} while (contador < 10);
system(“PAUSE”);}
![Page 39: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/39.jpg)
Faça um programa para calcular e escrever o valor de S:
Faça um programa para calcular os 20 primeiros termos da série de Fibonacci
Faça um programa para calcular os números primos menores que 100
Exercícios
199
100...
5
3
3
2
1
1S
,...13,8,5,3,2,1,1,0Fibonacci
![Page 40: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/40.jpg)
Uma unidade autônoma de código do programa é desenhada para cumprir uma tarefa particular.◦ Geralmente os programas em C consistem em várias
pequenas funções◦ A diretiva return é usada para terminar uma função e
retornar um valor a função que a chamou
Funções
Em Linguagem C tipoDeRetorno nomeDaFuncao(<parametro1>, ..., <parametroN> )
{
<instruções>
return valor;
}
![Page 41: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/41.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
float soma(float valor1, float valor2) {return valor1+valor2;
}
float media(float n1, float n2) {return (n1+n2)/2;
}
int main(int argc, char * argv[]){
float valor1, valor2, resultado;scanf(“%f”, &valor1);scanf(“%f”, &valor2);
resultado = soma(valor1, valor2);printf(“soma = %f”, resultado);
resultado = media(valor1, valor2);printf(“media = %f”, resultado);
system(“PAUSE”);}
![Page 42: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/42.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
float soma(float valor1, float valor2) {return valor1+valor2;
}
float media(float n1, float n2) {return soma(n1,n2)/2;
}
int main(int argc, char * argv[]){
float valor1, valor2, resultado;scanf(“%f”, &valor1);scanf(“%f”, &valor2);
resultado = soma(valor1, valor2);printf(“soma = %f”, resultado);
resultado = media(valor1, valor2);printf(“media = %f”, resultado);
system(“PAUSE”);}
![Page 43: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/43.jpg)
Um procedimento é uma função que não retorna valor
Um procedimento é declarado com parâmetro de retorno do tipo void
Procedimento
Em Linguagem C void nomeDoProcedimento(<parametro1>, ..., <parametroN> )
{
<instruções>
}
![Page 44: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/44.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
void dobro(float valor) {printf(“Dobro de %f = %f”, valor,
2*valor);}
int main(int argc, char * argv[]){
float, valor;scanf(“%f”, &valor);
dobro(valor);
system(“PAUSE”);}
![Page 45: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/45.jpg)
O valor de um argumento é copiado para o parâmetro formal da função,◦ Alterações no processamento da função não
alteram os valores das variáveis de origem
Passagem de Parâmetropor Valor
![Page 46: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/46.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
void dobro(float valor) {valor *= 2;printf(“Na funcao = %f\n”, valor);
}
int main(int argc, char * argv[]){
float valor;scanf(“%f”, &valor);
printf(“Antes da funcao = %f\n”, valor);
dobro(valor);printf(“Depois da funcao = %f\n”,
valor);
system(“PAUSE”);}
![Page 47: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/47.jpg)
Permite a alteração do valor de uma variável dentro de uma função◦ O valor permanece alterado mesmo após o
termino da função Para isso é necessário a passagem do
endereço do argumento para a função
Passagem de Parâmetropor Referência
Em Linguagem CtipoDeRetorno funcao(float * var) {
...(* var) = <expressão>;...
}
![Page 48: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/48.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
void dobro(float * valor) {(* valor) *= 2;printf(“Na funcao = %f\n”, * valor);
}
int main(int argc, char * argv[]){
float valor;scanf(“%f”, &valor);
printf(“Antes da funcao = %f\n”, valor);
dobro(& valor);printf(“Depois da funcao = %f\n”,
valor);
system(“PAUSE”);}
![Page 49: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/49.jpg)
Escreva um programa que leia dois números nas variáveis A e B. Após a chamada da função inverte, o valor de A é gravado em B e o valor de B é gravado em A.
Escreva um programa que leia dois números nas variáveis A e B. Após a chamada da função ordena, a variável A ficará com o menor valor e a variável B ficará com o maior valor.
Exercícios
![Page 50: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/50.jpg)
Um vetor é uma seqüência de vários valores do mesmo tipo, armazenados seqüencialmente na memória◦ Faz uso de um mesmo nome de variável para acessar
esses valores.◦ Um vetor também pode ser entendido logicamente
como uma lista de elementos de um mesmo tipo. Cada elemento da sequencia pode ser
acessado individualmente através de um índice.◦ Os elementos são indexados de 0 até n-1, onde n é a
quantidade de elementos do vetor
Vetores
![Page 51: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/51.jpg)
Declaraçãotipo variável[tamanho];
Em Linguagem Cint vet[10];int vetor[5] = {10, 3, 56, 23, 12},
5
0
6
1
19
2
14
3
Vetores
8
4
3
5
3
6
5
7
1
8
-4
9
vet
10 posições
![Page 52: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/52.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
int i, vector[10], total=0;
for ( i=0; i<10; i++) {printf(“posicao %d = “);scanf(“%d”, &vector[i]);
}for ( i=0; i<10; i++) {
total += vector[i]);}printf(“Total = %d\n”, total);
system(“PAUSE”);}
![Page 53: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/53.jpg)
Escreva um programa que lê 8 números e imprima os mesmos na ordem inversa de leitura
Armazene 10 números lidos do usuário e imprima◦ O menor◦ O maior◦ A média◦ A moda◦ A mediana
Faça um programa capaz de sortear automaticamente jogos da megasena (surpresinha) com 6 dezenas
Leia 10 números inteiros ao acaso e apresentem os mesmos em ordem crescente e decrescente
Crie um programa capaz de ordenar uma sequencia qualquer de 10 números
Exercícios
![Page 54: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/54.jpg)
Uma matriz é uma estrutura de armazenamento multidimensional de dados em memória◦ Faz uso de um mesmo nome de variável para acessar
esses valores.◦ Uma matriz também pode ser entendida logicamente
como uma tabela de elementos de um mesmo tipo. Cada elemento da sequencia pode ser acessado
individualmente através de um índice definido por um estrutura de coordenada.◦ As dimensões são indexadas a partir do indice 0 (zero)
Matrizes
![Page 55: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/55.jpg)
Declaraçãotipo variável[numeroDeLinhas][numeroDeColunas];
Em Linguagem Cint mat[3][10];int matriz[3][5] = {{10, 3, 56, 23, 12}, {1, 6, 57, 68, 80}, {65, 45, 79, 42, 7}};
5
0
6
1
19
2
14
3
Matriz Bidimensional
8
4
3
5
3
6
5
7
1
8
-4
9
mat
10 posições
5 6 19 14 8 3 3 5 1 -4
5 6 19 14 8 3 3 5 1 -4
3 posições
![Page 56: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/56.jpg)
Exemplo#include <stdio.h>#include <stdlib.h>
int main(int argc, char * argv[]){
int i, j, matriz[3][10], total;
for ( i=0; i<10; i++) {for ( j=0; j<10; j++) {
printf(“posicao (%d,%d) = “, i, j);
scanf(“%d”, &matriz[i][j]);}
}for ( i=0; i<10; i++) {
total = 0;for ( j=0; j<10; j++) {
total += matriz[i][j]);}printf(“Total(%d)= %d\n”, i, total);
}system(“PAUSE”);
}
![Page 57: Wellington Felix. Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da.](https://reader035.fdocumentos.com/reader035/viewer/2022081518/552fc181497959413d8f3443/html5/thumbnails/57.jpg)
Escreva um programa que leia uma tabela de 5 linhas 3 colunas e imprima a linha cuja soma é a maior.
Faca um programa que calcule a media de 4 alunos segundo os critérios da Facp.
Escreva um programa que simule o acompanhamento dos pontos dos pilotos de F1 ao logo das corridas
Faça um programa que simule o jogo da velha
Exercícios