Programação I
Paradigmas de Programação
Definem regras básicas
Exemplos (dentre outros):
Não estruturado
Estruturado
Orientado a Objetos
2
Paradigma não estruturado
Anos 50
Linhas de código sequenciais em um mesmo arquivo
Sequência de execução alterada com uso do GOTO
Código macarrônico (ilegível para sistemas grandes)
Exemplos: primeiras versões de BASIC e COBOL
3
Paradigma estruturado
Anos 60
Artigo “Go To Statement Considered Harmful” de
Edsger Dijkstra
Eliminação de GOTO e adoção de três estruturas
básicas:
Sequência (de cima para baixo)
Decisão (se...então...senão)
Repetição (loops)
4
LINGUAGEM “C”
I – Visão Geral
2/22/2011
Histórico
•A linguagem de programação denominada
C foi criada em 1972 por Dennis Ritchie
no centro de Pesquisas da Bell
Laboratories.
2/22/2011
Características Básicas
• Linguagem de Nível Médio, pois combina
elementos de linguagens de alto nível (Basic,
Pascal) com a funcionalidade da linguagem
assembler (instruções de máquinas).
• C não efetua nenhuma verificação em tempo de
execução, a responsabilidade é do programador.
• C é uma linguagem estruturada.
2/22/2011
Compiladores e Interpretadores
•Toda linguagem de programação pode ser
compilada ou interpretada.
•C é uma linguagem compilada.
•Compiladores e interpretadores são
programas que operam sobre o código-
fonte.
2/22/2011
Compiladores e Interpretadores
•Interpretador: lê o código-fonte linha por
linha e o executa (ex: visualg,
interpretador de pseudo-código).
•Compilador: lê todo o código-fonte e o
converte para código-objeto que
posteriormente é linkeditado e finalmente
o código de máquina é gerado (ex: gcc,
GNU compile C).
2/22/2011
Estrutura de um Programa C
Instruções de pré-processamento
int main( ) {
declaração de variáveis locais;
lista de comandos;
return 0;
}
2/22/2011
Primeiro Programa
// Este é um exemplo de um programa em C.
#include <stdio.h>
int main () {
printf("Hello!\nEste é o meu primeiro programa\n");
system("pause"); //opcional para forçar pausa
return 0;
}
2/22/2011
Primeiro Programa
/*Este é um exemplo de um programa em C.
Semelhante ao anterior.*/
#include <stdio.h>
int main () {
printf(“Hello!\n”);
printf(“Este é o meu primeiro programa\n”);
system(“pause”); //opcional para forçar pausa
return 0;
}
2/22/2011
Função main()
Função main():
Todo programa em C deve ter uma função main.
Deve existir em algum lugar do programa e marca
o ponto de início de execução do mesmo.
2/22/2011
Ponto e vírgula, Chaves e
Comentários
• Ponto e vírgula:
Todos os comandos em C terminam obrigatoriamente
com o ponto e vírgula (;).
2/22/2011
Ponto e vírgula, Chaves e
Comentários
• Chaves: { }
• São utilizadas para definir um bloco de comandos, que são
grupos de comandos relacionados que são tratados como
uma unidade e estão logicamente conectados.
• Um bloco começa com uma “{ “ e termina com uma “}”.
• Um bloco de comando pode ser colocado em qualquer lugar
onde seja possível a colocação de um comando.
2/22/2011
Ponto e vírgula, Chaves e
Comentários
•Comentários:
• Comentário de bloco: /* ..... */
• Comentário de linha: //
2/22/2011
Palavras Chaves
• auto double int struct
• break else long switch
• case enum * register typedef
• char extern return union
• const * float short unsigned
• continue for signed * void *
• default goto sizeof volatile*
• do if static while
• * ANSI
2/22/2011
Tipos de Dados
Tipo Tamanho em bits Faixa
char 8 0 a 255
int 16 -32768 a 32767
float 32 -3.4E-38 a 3.4E38
double 64 -1.7E-308 a 1.7E308
2/22/2011
Identificadores
Regras:
• Nome de funções e outros elementos definidos pelos
usuários (não use caracteres especiais).
• Identificador não pode ser iniciado com dígito.
int 1valor; //errado
int nome!; //errado
int soma tudo; //errado (não pode ter espaço)
int valor; //correto
int nome_aluno; //correto
2/22/2011
Identificadores
•Em C, letras maiúsculas e minúsculas são
diferentes, case sensitive.
•Identificador não pode ser uma palavra
chave de C.
Ex: double int struct, break, else, long, switch.
•DICA: Os identificadores devem ser auto
explicativos.
2/22/2011
Variáveis
•Posição nomeada de memória, que é
usada para guardar um valor que pode ser
modificado pelo programa.
•Todas as variáveis em C devem ser
declaradas antes de serem usadas.
2/22/2011
Variáveis
•Forma geral de declaração:
Tipo lista_de_variáveis;
Lista_de_variáveis: um ou mais nomes de identificadores
separados por vírgulas.
•Exemplos:
o int cont, num, tot_alunos;
o float media, percentual;
o char sexo;
2/22/2011
Variáveis
•Onde declarar:
• Dentro de funções ou blocos(variáveis locais);
• Como parâmetros de funções (parâmetros formais);
• Fora de todas as funções (variáveis globais).
2/22/2011
Variáveis
int main () {
int cont, num, tot_alunos;
float media;
char sexo;
...
...
...
return 0;
}
2/22/2011
Variáveis
int main () {
int cont=0;
int tot_alunos=10;
float media=0.0;
char sexo=‘M’;
...
...
...
return 0;
}
2/22/2011
Diretiva include
• Indica ao compilador que um código linkeditado será
adicionado ao código que contém a diretiva.
• Nomes de arquivos entre aspas serão procurados
inicialmente no diretório atual.
• Nomes de arquivos entre símbolos os simbolos < e >
serão procurados no diretório padrão do compilador
(diretório include);
Exemplo:
#include “meuProjeto.h”
#include <stdio.h>
2/22/2011
Diretiva include
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main () {
int v1=10;
int v2=20;
...
...
return 0;
}
2/22/2011
Função printf()
É uma função que imprime um determinado
conteúdo no vídeo ou saída padrão.
Forma geral:
• printf (“string de controle”, lista de argumentos);
string de controle - contém a mensagem que será exibida
na tela e comandos de formatação;
lista de argumentos - contém os valores, expressões, ou
literais que serão formatados;
2/22/2011
Função printf()
•Comandos de formatação
%c Caractere
%d Inteiros com sinal
%f Ponto flutuante
%.2f Ponto flutuante com duas casas decimais
•Códigos Especiais:
o \n nova linha
o \t tabulador
2/22/2011
Função printf()
#include <stdio.h>
int main () {
int cont = 5;
int tot_alunos = 10;
float media = 20.5;
char sexo = ‘F’;
printf(“O valor da variável cont é igual a: %d\n”, cont);
printf(“O valor da variável tot_alunos é igual a: %d\n”, tot_alunos);
printf(“O valor da variável media é igual a: %f\n”, media);
printf(“O valor da variável sexo é igual a: %c”, sexo);
return 0;
}
2/22/2011
Função scanf()
•Rotina de entrada pela teclado;
scanf(“string de controle”, argumento);
string de controle - determina o tipo do valor a ser lido;
argumento – variável destino do valor lido (passar o endereço);
• Especificadores de formato
%c lê caracter
%d lê inteiro
%f lê ponto flutuante
2/22/2011
Função scanf()
#include <stdio.h>
int main () {
int tot_alunos;
printf(“Entre com um valor inteiro: ”);
scanf(“%d”,&tot_alunos);
printf(“O valor da variável tot_alunos é %d\n”,tot_alunos);
return 0;
}
2/22/2011
Operadores Aritméticos
Operador Ação
+ Adição
* Multiplicação
/ Divisão
% Resto da divisão inteira
- Subtração (unário)
-- Decremento
++ Incremento
2/22/2011
Operadores Relacionais
Operador Ação
> Maior que
>= Maior ou igual que
< Menor que
<= Menor ou igual que
== Igual a
!= Diferente de
2/22/2011
Operadores Lógicos
Operador Ação
&& Condição “E”
|| Condição “OU”
! Não
2/22/2011 Introdução Linguagem C
Operadores de Atribuição
Operador Exemplo Comentário
= x=y Atribui o valor de y a x
+= 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 Equivale a x = x % y
2/22/2011
Incremento\decremento
•Aplicáveis apenas em variáveis de tipos
escalares (int ou char).
•Pode ser pré-fixado ou pós-fixado.
2/22/2011 Introdução Linguagem C
Incremento pré-fixado
#include<stdio.h>
int main(){
int x,y;
x = 10;
y = ++x; // x=x+1; y=x;
printf(“x =%d e y =%d”,x,y); //saída: x = 11 e y = 11
return 0;
}
2/22/2011
Incremento pós-fixado
#include<stdio.h>
int main(){
int x,y;
x = 10;
y = x++; // y=x; x=x+1;
printf(“x = %d e y = %d”, x, y); //saída: x = 11 e y = 10
return 0;
}
pos fixado
2/22/2011
Programa Exemplo – Pré/Pos Incremento
#include<stdio.h>
int main(){
int cont=10, aux;
aux=cont++;
printf(“aux = %d, cont = %d\n”, aux, cont);
aux=++cont;
printf(“aux = %d, cont = %d”, aux, cont);
return 0;
}
Quais são as saídas deste programa?
2/22/2011
Programa Exemplo – Pré/Pos Incremento
#include<stdio.h>
int main(){ aux = 10, cont = 11
int cont=10, aux; aux = 12, cont = 12
aux=cont++;
printf(“aux = %d, cont = %d\n”, aux, cont);
aux=++cont;
printf(“aux = %d, cont = %d”, aux, cont);
return 0;
}
2/22/2011
Comando if Operador
>
Ação
Maior que
>= Maior ou igual que
if (condição){ < Menor que
instrução; <= Menor ou igual que
} == Igual a
!= Diferente de
#include <stdio.h> Operador Ação
int main() {
&& Condição “E”
int n1,n2;
printf(“digite o 1º número: “); || Condição “OU”
scanf(“%d”,&n1); ! Não
printf(“\ndigite o 2º número: “);
scanf(“%d”,&n2);
if (n1>n2){
printf(“\nO maior é %d”,n1); Exercício:
} Faça um programa que leia três números e
if (n1<n2){ identifique qual é o maior.
printf(“\nO maior é %d”,n1);
} E para 4 números?
if (n1==n2){
printf(“\nSão iguais!);
}
return 0;
}