TÉCNICAS DE PROGRAMAÇÃO I
Prof.John Hebert da Silva Felix
johnfelix@unilab.edu.br
Universidade da Integração Internacional da Lusofonia
Afro-Brasiliera
Curso de Engenharia de Energias
Redenção-CE, Brasil
2014
Prof. John Hebert S. Felix 1/1 UNILAB
Técnicas de Programação I
Índice da Apresentação
Prof. John Hebert S. Felix 2/1 UNILAB
Técnicas de Programação I
LINGUAGEM C
Prof. John Hebert S. Felix 3/1 UNILAB
Técnicas de Programação I
Linguagem C
1 Introdução;
2 A Biblioteca-padrão e as Palavras Reservadas em C;
3 Tipos de Dados e Variáveis;
4 Operadores e Expressões;
5 Entrada e Saída E/S pelo Console;
6 Estruturas de Controles;
7 Funções;
8 Arrays e Strings;
9 Ponteiros;
10 Estruturas, Uniões e Enumerações;
11 Arquivos e Streams;
12 Estruturas de dados:
Listas lineares (Filas, Pilhas e Listas Encadeadas);
Ordenação e Pesquisa.
Prof. John Hebert S. Felix 4/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Estruturas de controle
As estruturas ou comandos de controle podem ser divididos em:
seleção, iteração e desvios.
Seleção ou condicional: fazem parte os comandos if e switch;
Iteração ou laço: fazem parte os comandos while, for e do-while;
Desvio ou salto: fazem parte os comandos break, continue,
return e goto;
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Estrutura de seleção
O comando de seleção if executa uma ação ou um bloco de ações,
quando uma condição é verdadeira, caso contrário a ação ou um bloco de
ações do else (se existir) é executado.
Sintaxe - if-else - comando simples
if (expressão) comando;
else comando;
Sintaxe - if-else - bloco de comandos
if (expressão){
Bloco de Comandos;
}
else {
Bloco de Comandos;
}
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Sintaxe - if-else aninhados -
comando único
if (expressão)
Comando;
else if (expressão)
Comando;
else if (expressão)
Comando;
Sintaxe - if-else aninhados - bloco
de comandos
if (expressão) {
Bloco de Comandos;
}
else if (expressão) {
Bloco de Comandos;
}
else if (expressão) {
Bloco de Comandos;
}
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Exemplo de estrutura de seleção composta.
Média aritmética indicando aprovado e reprovado
#include <stdio.h>
int main (void){
float nota1, nota2, nota3, media;
printf(“Digite as 3 notasn”);
scanf(“%fn%fn%f”, &nota1, &nota2, &nota3);
media = (nota1 + nota2 + nota3)/3;
if (media>=7) {
printf(“Aluno aprovadon”);
printf(“A sua média é: %fn”, media);
}
else {
printf(“Aluno reprovadon”);
printf(“A sua média é: %fn”, media);
}
return 0;
}
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Seleção de múltipla escolha - switch
A estrutura de seleção switch seleciona uma dentre um
conjunto de condições associadas a uma sequência de
valores.
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Sintaxe - switch
switch(expressão) {
case Valor1:
Sequência de comandos;
break; /*comando que desvia a
excução do programa para outra linha do
código*/
case Valor2:
Sequência de comandos;
break;
.
.
.
default:
Sequência de comandos;
break;
}
Ex.: Calculadora com 4 operações
#include <stdio.h>
int main (void){
float numa, numb;
char oper;
printf(“Digite o 1o
número o operador e o 2o
númeron”);
scanf(“%f%c%f”, &numa, &oper, &numb);
switch(oper) {
case ‘+’:
printf(“A adição é: %2.2fn”, numa + numb); break;
case ‘–’:
printf(“A subtração é: %2.2fn”, numa – numb); break;
case ‘*’:
printf(“A multiplicação é: %2.2fn”, numa * numb); break;
case ‘/’:
printf(“A divisão é: %2.2fn”, numa / numb); break;
default:
printf(“Operação inválida!n”); break;
}
return 0;
}
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Estrutura de Iteração ou laço - for
Controla o fluxo de execução, por meio de uma quantidade de repetições
predefinidas.
Sintaxe - laço for
for(inicialização; condição; incremento) {
Sequência de comandos;
}
Se houver apenas um comando, o
bloco representado por { }, pode ser
retirado.
Em que:
inicialização: atribui um valor a
variável de controle;
condição: indica uma expressão
relacional que determina o fim do
laço;
incremento: defini a forma de
variação da variável de controle a
cada iteração.
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Ex.: Média geral da turma
#include <stdio.h>
int main (void){
float mAno, mAnoTur, acum;
int i;
printf(“Digite a média da turma de 36
alunosn”);
for(i=1;i<=36;i++){
scanf(“%f”,&mAno);
acum = acum + mAno;
}
mAnoTur = acum/36;
printf(“A média anual da turma é: %2.2fn”,
mAnoTur);
return 0;
}
Ex.: Laço infinito
#include <stdio.h>
int main (void){
char letra;
printf(“Digite a letra L para sair do
laçon”);
for( ; ; ){
scanf(“%f”,&mAno);
letra = getchar();
if (letra == ‘L’) break; /*sai do laço*/
}
return 0;
}
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Estrutura de Iteração ou laço - while
Controla o fluxo de execução, repetindo várias vezes uma mesma
parte ou bloco de um programa.
Sintaxe - laço while
while(condição) {
Sequência de comandos;
}
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Média geral da turma
#include <stdio.h>
int main (void){
float mAno, mAnoTur, acum = 0;
int i = 1;
printf(“Digite a média da turma de 36 alunosn”);
while(i<=36){
scanf(“%f”,&mAno);
acum = acum + mAno;
i++;
}
mAnoTur = acum/36;
printf(“A média anual da turma é: %2.2fn”, mAnoTur);
return 0;
}
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Estrutura de Iteração ou laço - do-while
Controla o fluxo de execução, repetindo várias vezes uma mesma
parte ou bloco de um programa, realizando o teste no final.
Sintaxe - laço do-while
do {
Sequência de comandos;
}while(condição);
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Ex. 1: Média geral da turma
#include <stdio.h>
int main (void){
float mAno, mAnoTur, acum = 0;
int i = 1;
printf(“Digite a média da turma de 36
alunosn”);
do {
scanf(“%f”,&mAno);
acum = acum + mAno;
} while(++i <= 36);
mAnoTur = acum/36;
printf(“A média anual da turma é:
%2.2fn”, mAnoTur);
return 0;
}
Ex. 2: Especicifacação da porcentagem
de vinho
O algoritmo apresentado a seguir,
especifica a porcentagem dos tipos de
vinhos: tinto, branco e rosê. O algoritmo
informa a quantidade de vinho
desconhecida e para sair um finalizador
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Ex. 2: Especicifacação da porcentagem
de vinho
#include <stdio.h>
int main (void){
float pTin, pBra, pRos; //porcentagem de vinhos
int conV = 0, conTin = 0, conBra = 0, conRos = 0;
char tipV = ‘0’; //tipo de vinho
printf (“Digite T (p/ tinto), B (p/ branco), R (p/ rosê)
e S (p/ sair)n”);
do{
scanf(“%c”,&tipV);
switch(tipV){
case ‘T’: conTin += 1;
case ‘B’: conBra += 1;
case ‘R’: conRos += 1;
}
conV += 1; // incrementa o contador
Ex. 2: continuação
} while(tipV != ‘S’); //teste da condição de saida
conV –= 1; // desconta o finalizador ‘S’
if(conV) {
pTin = (conTin * 100) / conV;
pBra = (conBra * 100) / conV;
pRos = (conRos * 100) / conV;
printf (“As % dos vinhos tinto, branco e rosê são,
respectivamente:%2.2fn%2.2fn%2.2f”, pTin, pBra,
pRos);
}
else
printf (“Não foi informado nenhum tipo de
vinho!n”);
}
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Comandos de desvio
return: utilizado para retornar de uma função e caso algum valor
esteja associado a este comando será também retornado. A sua
forma é: return expressão;
break: pode ser utilizado para finalizar case de um comando
switch ou laço. A sua forma é: break;
continue: realiza a execução do próximo comando. No caso de
um laço faz este realizar a sua próxima iteração. A sua forma é:
continue;
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I
Estruturas de controle
Comandos de desvio
goto: caiu em desuso devido a tendência de deixar os programas
ilegíveis. A sua forma é:
goto rótulo;
...
rótulo:
Em que: rótulo corresponde a um rótulo válido.
Exemplo de laço com goto:
cont = 1;
laco:
scanf(“%f”,&mAno);
acum = acum + mAno;
cont++;
if(cont<=36) goto laco;
Prof. John Hebert S. Felix 5/1 UNILAB
Técnicas de Programação I

Tecnicas programacao i_c_p2

  • 1.
    TÉCNICAS DE PROGRAMAÇÃOI Prof.John Hebert da Silva Felix johnfelix@unilab.edu.br Universidade da Integração Internacional da Lusofonia Afro-Brasiliera Curso de Engenharia de Energias Redenção-CE, Brasil 2014 Prof. John Hebert S. Felix 1/1 UNILAB Técnicas de Programação I
  • 2.
    Índice da Apresentação Prof.John Hebert S. Felix 2/1 UNILAB Técnicas de Programação I
  • 3.
    LINGUAGEM C Prof. JohnHebert S. Felix 3/1 UNILAB Técnicas de Programação I
  • 4.
    Linguagem C 1 Introdução; 2A Biblioteca-padrão e as Palavras Reservadas em C; 3 Tipos de Dados e Variáveis; 4 Operadores e Expressões; 5 Entrada e Saída E/S pelo Console; 6 Estruturas de Controles; 7 Funções; 8 Arrays e Strings; 9 Ponteiros; 10 Estruturas, Uniões e Enumerações; 11 Arquivos e Streams; 12 Estruturas de dados: Listas lineares (Filas, Pilhas e Listas Encadeadas); Ordenação e Pesquisa. Prof. John Hebert S. Felix 4/1 UNILAB Técnicas de Programação I
  • 5.
    Estruturas de controle Estruturasde controle As estruturas ou comandos de controle podem ser divididos em: seleção, iteração e desvios. Seleção ou condicional: fazem parte os comandos if e switch; Iteração ou laço: fazem parte os comandos while, for e do-while; Desvio ou salto: fazem parte os comandos break, continue, return e goto; Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 6.
    Estruturas de controle Estruturade seleção O comando de seleção if executa uma ação ou um bloco de ações, quando uma condição é verdadeira, caso contrário a ação ou um bloco de ações do else (se existir) é executado. Sintaxe - if-else - comando simples if (expressão) comando; else comando; Sintaxe - if-else - bloco de comandos if (expressão){ Bloco de Comandos; } else { Bloco de Comandos; } Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 7.
    Estruturas de controle Sintaxe- if-else aninhados - comando único if (expressão) Comando; else if (expressão) Comando; else if (expressão) Comando; Sintaxe - if-else aninhados - bloco de comandos if (expressão) { Bloco de Comandos; } else if (expressão) { Bloco de Comandos; } else if (expressão) { Bloco de Comandos; } Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 8.
    Estruturas de controle Exemplode estrutura de seleção composta. Média aritmética indicando aprovado e reprovado #include <stdio.h> int main (void){ float nota1, nota2, nota3, media; printf(“Digite as 3 notasn”); scanf(“%fn%fn%f”, &nota1, &nota2, &nota3); media = (nota1 + nota2 + nota3)/3; if (media>=7) { printf(“Aluno aprovadon”); printf(“A sua média é: %fn”, media); } else { printf(“Aluno reprovadon”); printf(“A sua média é: %fn”, media); } return 0; } Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 9.
    Estruturas de controle Seleçãode múltipla escolha - switch A estrutura de seleção switch seleciona uma dentre um conjunto de condições associadas a uma sequência de valores. Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 10.
    Estruturas de controle Sintaxe- switch switch(expressão) { case Valor1: Sequência de comandos; break; /*comando que desvia a excução do programa para outra linha do código*/ case Valor2: Sequência de comandos; break; . . . default: Sequência de comandos; break; } Ex.: Calculadora com 4 operações #include <stdio.h> int main (void){ float numa, numb; char oper; printf(“Digite o 1o número o operador e o 2o númeron”); scanf(“%f%c%f”, &numa, &oper, &numb); switch(oper) { case ‘+’: printf(“A adição é: %2.2fn”, numa + numb); break; case ‘–’: printf(“A subtração é: %2.2fn”, numa – numb); break; case ‘*’: printf(“A multiplicação é: %2.2fn”, numa * numb); break; case ‘/’: printf(“A divisão é: %2.2fn”, numa / numb); break; default: printf(“Operação inválida!n”); break; } return 0; } Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 11.
    Estruturas de controle Estruturade Iteração ou laço - for Controla o fluxo de execução, por meio de uma quantidade de repetições predefinidas. Sintaxe - laço for for(inicialização; condição; incremento) { Sequência de comandos; } Se houver apenas um comando, o bloco representado por { }, pode ser retirado. Em que: inicialização: atribui um valor a variável de controle; condição: indica uma expressão relacional que determina o fim do laço; incremento: defini a forma de variação da variável de controle a cada iteração. Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 12.
    Estruturas de controle Ex.:Média geral da turma #include <stdio.h> int main (void){ float mAno, mAnoTur, acum; int i; printf(“Digite a média da turma de 36 alunosn”); for(i=1;i<=36;i++){ scanf(“%f”,&mAno); acum = acum + mAno; } mAnoTur = acum/36; printf(“A média anual da turma é: %2.2fn”, mAnoTur); return 0; } Ex.: Laço infinito #include <stdio.h> int main (void){ char letra; printf(“Digite a letra L para sair do laçon”); for( ; ; ){ scanf(“%f”,&mAno); letra = getchar(); if (letra == ‘L’) break; /*sai do laço*/ } return 0; } Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 13.
    Estruturas de controle Estruturade Iteração ou laço - while Controla o fluxo de execução, repetindo várias vezes uma mesma parte ou bloco de um programa. Sintaxe - laço while while(condição) { Sequência de comandos; } Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 14.
    Estruturas de controle Médiageral da turma #include <stdio.h> int main (void){ float mAno, mAnoTur, acum = 0; int i = 1; printf(“Digite a média da turma de 36 alunosn”); while(i<=36){ scanf(“%f”,&mAno); acum = acum + mAno; i++; } mAnoTur = acum/36; printf(“A média anual da turma é: %2.2fn”, mAnoTur); return 0; } Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 15.
    Estruturas de controle Estruturade Iteração ou laço - do-while Controla o fluxo de execução, repetindo várias vezes uma mesma parte ou bloco de um programa, realizando o teste no final. Sintaxe - laço do-while do { Sequência de comandos; }while(condição); Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 16.
    Estruturas de controle Ex.1: Média geral da turma #include <stdio.h> int main (void){ float mAno, mAnoTur, acum = 0; int i = 1; printf(“Digite a média da turma de 36 alunosn”); do { scanf(“%f”,&mAno); acum = acum + mAno; } while(++i <= 36); mAnoTur = acum/36; printf(“A média anual da turma é: %2.2fn”, mAnoTur); return 0; } Ex. 2: Especicifacação da porcentagem de vinho O algoritmo apresentado a seguir, especifica a porcentagem dos tipos de vinhos: tinto, branco e rosê. O algoritmo informa a quantidade de vinho desconhecida e para sair um finalizador Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 17.
    Estruturas de controle Ex.2: Especicifacação da porcentagem de vinho #include <stdio.h> int main (void){ float pTin, pBra, pRos; //porcentagem de vinhos int conV = 0, conTin = 0, conBra = 0, conRos = 0; char tipV = ‘0’; //tipo de vinho printf (“Digite T (p/ tinto), B (p/ branco), R (p/ rosê) e S (p/ sair)n”); do{ scanf(“%c”,&tipV); switch(tipV){ case ‘T’: conTin += 1; case ‘B’: conBra += 1; case ‘R’: conRos += 1; } conV += 1; // incrementa o contador Ex. 2: continuação } while(tipV != ‘S’); //teste da condição de saida conV –= 1; // desconta o finalizador ‘S’ if(conV) { pTin = (conTin * 100) / conV; pBra = (conBra * 100) / conV; pRos = (conRos * 100) / conV; printf (“As % dos vinhos tinto, branco e rosê são, respectivamente:%2.2fn%2.2fn%2.2f”, pTin, pBra, pRos); } else printf (“Não foi informado nenhum tipo de vinho!n”); } Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 18.
    Estruturas de controle Comandosde desvio return: utilizado para retornar de uma função e caso algum valor esteja associado a este comando será também retornado. A sua forma é: return expressão; break: pode ser utilizado para finalizar case de um comando switch ou laço. A sua forma é: break; continue: realiza a execução do próximo comando. No caso de um laço faz este realizar a sua próxima iteração. A sua forma é: continue; Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I
  • 19.
    Estruturas de controle Comandosde desvio goto: caiu em desuso devido a tendência de deixar os programas ilegíveis. A sua forma é: goto rótulo; ... rótulo: Em que: rótulo corresponde a um rótulo válido. Exemplo de laço com goto: cont = 1; laco: scanf(“%f”,&mAno); acum = acum + mAno; cont++; if(cont<=36) goto laco; Prof. John Hebert S. Felix 5/1 UNILAB Técnicas de Programação I