Estrutura de um programa em linguagem C

Propaganda
Estrutura de um programa em linguagem C
Estrutura de um programa em
linguagem C
Directivas de Pré-Processamento
Exemplo de um programa em
linguagem C
#include <stdio.h>
#include <stdilib.h>
Declarações Globais
Declarações das funções
int main(void)
{
int main(void)
{
printf(“Hello World\n”);
Definições Locais
return 0;
Instruções
}
}
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
1
Estrutura Básica de um programa em Linguagem C
Directivas de Pré-Processamento
Declarações Globais
Declarações das funções
As funções são delimitadas por chavetas { }.
Definições Locais
}
Definição/Declaração de variáveis globais
Definições de estruturas de forma global, ou seja,
válida em todos os sub-blocos do programa
Na realidade as funções podem ser declaradas antes ou
depois da função main
Programa em linguagem C contém sempre a função main
int main(void)
{
Instruções
Nessas directivas contém funções, e ferramentas pré-definidas
e prontas a serem usadas.
Definição/Declaração de variáveis locais
Conjunto de instruções que irão constituir o programa
(Obs: uma instrução especifica a tarefa que o processador
irá executar)
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
2
Exemplo:Cálculo da área do circulo
Pseudo-código
Descrição Narrativa
Cálculo da área do círculo
Obter o raio do círculo
Se o raio for negativo, escrever “raio invalido”
Se não, calcular a área do circulo usando
Calcula_Area.c
Solução usando
Linguagem C
Escreve(“Raio invalido”);
a expressão (A=π.R2)
Terminar o Algoritmo.
Fluxograma Convencional
inicio
Raio < 0?
Escrever(“raio inválido”)
Senão
Area ← PI * Raio * Raio;
Escrever(Area);
Fim Se
Fim
#include <stdio.h>
#include <stdlib.h>
int main( ){
int raio;
int Area;
scanf(“%d”,&raio);
Ler(Raio)
Sim
Programa Calculo_da_area_do_círculo
Area, Raio: Real
PI = 3.14159
Inicio
Ler(Raio);
Se (Raio < 0) então
if(raio < 0){
printf(“raio inválido”);
}
else{
Area = 3.14 * raio * raio;
printf(“%f”,Area);
}
exit(0);
Não
Area ← π. Raio. Raio
Escrever(Area)
}
Fim
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
3
Exemplo:Cálculo da Média do aluno
Descrição Narrativa
Cálculo da média de um aluno
Obter as suas duas notas de prova
Calcular a média aritmética
Se a média for maior que 9.5
O aluno aprovou
Senão, o aluno reprovou
Fluxograma Convencional
inicio
Pseudo-código
Programa Calculo_da_media_de_um_aluno
N1, N2, MEDIA : Real;
Solução usando
Inicio
Calcula_Media_do_Aluno.c Linguagem C
Ler (N1, N2);
MEDIA← (N1+N2)/2;
Se (MEDIA >= 9.5) então
Escreva(“Aprovado”);
Senão
#include <stdio.h>
Escreva(“Reprovado”);
#include <stdlib.h>
Fim Se
Fim
int main( ){
int N1,N2;
float Media;
scanf(“%d %d”,&N1, &N2);
Ler(N1,N2)
Media = (N1+N2)/2;
Media ← ( N1 +N2 ) / 2
S
Media >= 9.5 ?
“Aprovado”
N
“Reprovado”
if(Media >= 9.5){
printf(“Aprovou”);
}
else{
printf(“Reprovou”);
}
exit(0);
}
Fim
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
4
Próximos tópicos a serem estudados
Solução usando Linguagem C
Nome do programa
Calcula_Area.c
#include <stdio.h>
#include <stdlib.h>
int main( ){
int raio;
int Area;
Directivas (inclusão de bibliotecas)
Declaração de variáveis
Função que permite a entrada de dados no programa
scanf(“%d”,&raio);
if(raio < 0){
printf(“raio inválido”);
}
else{
Area = 3.14 * raio * raio;
printf(“raio inválido”);
}
exit(0);
Estrutura de controlo de execução das instruções
Atribuição de valores às variáveis e utilização de operadores (*)
Utilização de funções presentes nas bibliotecas pré-definidas
}
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
5
Estrutura de um programa
Regras gerais usadas em linguagem C
• Toda função tem um corpo delimitado por { }.
• Toda função é precedida de parênteses ().
• Todo programa em linguagem C deverá conter uma função m ain .
• As linhas de códigos/instruções são sempre encerradas por
ponto-e-virgula (;).
• Os comentários são delimitados por /* */ ou ainda //
– Exemplo: /* engenharia informática */
–
ou //engenharia informática
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
6
Estrutura de um programa
stdlib.h
#include <stdio.h>
#include <stdilib.h>
#define CONSTANTE 323
int atoi(const char *s);
float atof(const char *s);
(...)
int main(void)
{
printf(“Hello World\n”);
Essas directivas
são ficheiros que
contêm algumas
funções pré-definidas
stdio.h
int printf(char *format,...);
return 0;
int scanf(char *format,...);
int fgetc(FILE *filestream);
(...)
}
O programador
pode usar qualquer
uma das funções
existentes nesses
ficheiros
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
7
Estrutura de um programa
Bibliotecas do Unix
• Principais bibliotecas do sistema Unix/Linux
Nome das bibliotecas
stdio.h
stdlib.h
string.h
math.h
time.h
signal.h
limits.h
Função
Standard input/output
Nºconversion, storage,alocation
Manipulação de strings
Funções matemáticas
Manipulação de tempo/data
Mandar signals aos processos
Limites das constantes
Tipo de funções no interior da biblioteca
printf(); scanf(); fopen(); fclose(); fprintf();puts(); getchar();
atoi(); atof(); rand(); exit(); malloc(); abs(), etc.
strcpy(); strcmp(); strlen();strcat() - concatenation,etc.
sin(); cos(); exp(); sqrt(); fabs(); log(); pow(); sinh(), etc.
clock(); time();
INT_MAX 32767, INT_MIN 32767, CHAR_BIT  8 bits
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
8
Algumas funcões em C
printf(): print + format
Funcionalidade
Imprime uma string ou um valor de uma variável no ecrã
scanf()
scan +format : lê dados do teclado e guarda-os numa variável
fopen()
Abre um ficheiro existente, se não existir cria o ficheiro
fclose()
fprintf()
puts(): put string
Fecha o ficheiro
Imprime dados no ficheiro
Escreve uma cadeia de caracteres no ecrã seguido de um carácter ‘\n’
getchar()
atoi(): ask to int
atof(): ask to int
rand(): random
exit()
malloc:memory allocation
abs()
strcpy(): string copy
strcmp():string compare
strlen(): string length
strcat(): string concatenation
sin();
cos();
exp();
sqrt();
fabs();
log();
pow();
sinh()
Lê um carácter (no buffer, etc)
Converte uma string em um número inteiro
Converte uma string em um número real
Gera números aleatórios
Sair do Programa ou terminar o programa
Alocação dinâmica de memória
Determina o valor absoluto de um número
Copia os dados de uma string para outra
Compara duas strings
Determina o tamanho da string
Efectua concatenação ou junção entre duas strings
Determina o valor de sin(x) para um dado x (x em radianos)
Determina o valor de cos(x) para um dado x (x em radianos)
Determina o valor de exp(x) para um dado x
Calcula a raiz quadrada de um dado número positivo
Determina o valor absoluto de um número
Determina o valor do logaritmo decimal de um dado valor x>0
Para efectuar operações de potenciação
Determina o valor de um seno hiperbólico dado o ângulo x [radianos]
clock()
time()
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
9
Download