estrutura de um programa em exemplo de um programa...
TRANSCRIPT
Declarações Globais
Directivas de Pré-Processamento
int main(void) {
}
Definições Locais
Instruções
Declarações das funções
Estrutura de um programa em linguagem C
1Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
#include <stdio.h>#include <stdilib.h>
int main(void) {
printf(“Hello World\n”);
return 0;
}
Exemplo de um programa em linguagem C
Estrutura de um programa em linguagem C
Estrutura Básica de um programa em Linguagem C
2Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
Declarações Globais
Directivas de Pré-Processamento
int main(void) {
}
Definições Locais
Instruções
Declarações das funções
Definição/Declaração de variáveis globaisDefinições de estruturas de forma global, ou seja,válida em todos os sub-blocos do programa
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 processadorirá executar)
Programa em linguagem C contém sempre a função mainAs funções são delimitadas por chavetas { }.
Na realidade as funções podem ser declaradas antes ou depois da função main
Nessas directivas contém funções, e ferramentas pré-definidase prontas a serem usadas.
Exemplo:Cálculo da área do circulo
3Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
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
a expressão (A=π.R2)
Terminar o Algoritmo.
Descrição Narrativa
Fluxograma Convencional
Programa Calculo_da_area_do_círculoArea, Raio: RealPI = 3.14159InicioLer(Raio);Se (Raio < 0) então
Escreve(“Raio invalido”);Senão
Area ← PI * Raio * Raio;Escrever(Area);
Fim SeFim
Solução usandoLinguagem C
Pseudo-código
inicio
Raio < 0?
Ler(Raio)
Area ← π. Raio. Raio
Fim
NãoSim
Escrever(“raio inválido”)
Escrever(Area)
#include <stdio.h>#include <stdlib.h>
int main( ){ int raio; int Area;
scanf(“%d”,&raio);
if(raio < 0){ printf(“raio inválido”); } else{ Area = 3.14 * raio * raio; printf(“%f”,Area); } exit(0);}
Calcula_Area.c
Exemplo:Cálculo da Média do aluno
4Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
4
Descrição Narrativa
Fluxograma Convencional
Solução usandoLinguagem C
Pseudo-código
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
inicio
Media >= 9.5 ?
Ler(N1,N2)
Fim
NS
“Aprovado”
Media ← ( N1 +N2 ) / 2
“Reprovado”
Programa Calculo_da_media_de_um_alunoN1, N2, MEDIA : Real;InicioLer (N1, N2);MEDIA← (N1+N2)/2;Se (MEDIA >= 9.5) então
Escreva(“Aprovado”);Senão
Escreva(“Reprovado”);Fim SeFim
#include <stdio.h>#include <stdlib.h>
int main( ){ int N1,N2; float Media;
scanf(“%d %d”,&N1, &N2);
Media = (N1+N2)/2; if(Media >= 9.5){ printf(“Aprovou”); } else{ printf(“Reprovou”); } exit(0);}
Calcula_Media_do_Aluno.c
Próximos tópicos a serem estudados
5Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
#include <stdio.h>#include <stdlib.h>
int main( ){ int raio; int Area;
scanf(“%d”,&raio);
if(raio < 0){ printf(“raio inválido”); } else{ Area = 3.14 * raio * raio; printf(“raio inválido”); } exit(0);}
Calcula_Area.c
Solução usando Linguagem C
Nome do programa
Directivas (inclusão de bibliotecas)
Declaração de variáveis
Função que permite a entrada de dados no programaEstrutura 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
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 main.
• 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
Estrutura de um programa
6Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
Estrutura de um programa
7Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
#include <stdio.h>#include <stdilib.h>
int main(void) {
printf(“Hello World\n”);
return 0;
}
stdio.h
stdlib.h
#define CONSTANTE 323
int atoi(const char *s);
float atof(const char *s);
(...)
int printf(char *format,...);
int scanf(char *format,...);
int fgetc(FILE *filestream);
(...)
Essas directivas são ficheiros que contêm algumas funções pré-definidas
O programadorpode usar qualqueruma das funções existentes nesses ficheiros
• Principais bibliotecas do sistema Unix/Linux
Bibliotecas do Unix
8Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
Nome das bibliotecas Função Tipo de funções no interior da biblioteca stdio.h Standard input/output printf(); scanf(); fopen(); fclose(); fprintf();puts(); getchar();stdlib.h Nºconversion, storage,alocation atoi(); atof(); rand(); exit(); malloc(); abs(), etc.string.h Manipulação de strings strcpy(); strcmp(); strlen();strcat() - concatenation,etc.math.h Funções matemáticas sin(); cos(); exp(); sqrt(); fabs(); log(); pow(); sinh(), etc.time.h Manipulação de tempo/data clock(); time();signal.h Mandar signals aos processoslimits.h Limites das constantes INT_MAX 32767, INT_MIN 32767, CHAR_BIT 8 bits
Estrutura de um programa
9Universidade Metodista de Angola, Departamento de Engenharias, Programação I, Gustavo Sebastião
Algumas funcões em C Funcionalidadeprintf(): print + format 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() Fecha o ficheirofprintf() Imprime dados no ficheiroputs(): put string Escreve uma cadeia de caracteres no ecrã seguido de um carácter ‘\n’
getchar() Lê um carácter (no buffer, etc)atoi(): ask to int Converte uma string em um número inteiroatof(): ask to int Converte uma string em um número realrand(): random Gera números aleatóriosexit() Sair do Programa ou terminar o programamalloc:memory allocation Alocação dinâmica de memóriaabs() Determina o valor absoluto de um númerostrcpy(): string copy Copia os dados de uma string para outrastrcmp():string compare Compara duas stringsstrlen(): string length Determina o tamanho da stringstrcat(): string concatenation Efectua concatenação ou junção entre duas stringssin(); Determina o valor de sin(x) para um dado x (x em radianos)cos(); Determina o valor de cos(x) para um dado x (x em radianos)exp(); Determina o valor de exp(x) para um dado x sqrt(); Calcula a raiz quadrada de um dado número positivofabs(); Determina o valor absoluto de um númerolog(); Determina o valor do logaritmo decimal de um dado valor x>0pow(); Para efectuar operações de potenciaçãosinh() Determina o valor de um seno hiperbólico dado o ângulo x [radianos]
clock() -time() -