Você está na página 1de 31

CCT0083 - Algoritmo Avançado

Aula 03 - Revisão Função e Struct


Introdução à Programação

Algoritmo Avançado
Aula 03 - Revisão função e Struct

Algoritmo
AULA Avançadoà Lógica de Programação
01: Introdução
Introdução
Objetivoà Programação

- Relembrar sobre a Sintaxe da Linguagem C/C++;


- Desenvolver em Laboratório de Informática virtual - VDI, algoritmos relacionado
ao tema, Registros (Struct) e Funções.

Algoritmo
AULA Avançadoà Lógica de Programação
01: Introdução
IMPLEMENTANDO FUNÇÕES

Algoritmo Avançado 4
Agenda
▪ Introdução
▪ Importância do uso de função
▪ Funções da própria linguagem
▪ Funções do desenvolvedor.
▪ Tipo de função
- Com argumentos (parâmetros)
- Sem argumentos (sem
parâmetros)
▪Função simplificada
▪Função complexa
▪ Switch Case
▪As funções do tipo INT e VOID
Algoritmo Avançado 5
Introdução

Funções são usadas para criar pequenos blocos de


códigos separados do programa principal. Em C/C++, tudo,
na verdade, pode ser considerado uma função.
INT, MAIN e VOID é uma função, por exemplo.
Exceto a função MAIN, todas as outras funções são
secundárias, o que significa que elas podem existir ou não.
ou seja, podemos ou não declará-las.

Algoritmo Avançado 6
Conceito

Função: é uma unidade de código de programa autônomo


implementadas para cumprir uma tarefa especifica.

A linguagem C foi implementada com funções eficientes e fáceis


de usar, geralmente os programas desenvolvidos nesta
linguagem são compostos por pequenas funções.

Algoritmo Avançado 7
Importância do uso de função

- Retornam valores
- Ajudam a fragmentar o código em partes menores
- Mais fáceis de lê e entender a codificação
- Podem ser utilizadas mais de uma vez no mesmo programa.
- Poupa tempo de programação
- Diminuem inúmeras linhas de código.

Algoritmo Avançado 8
Natureza das funções
Quanto a natureza das funções, temos:
- Funções Nativas
As linguagens de programação possuem funções de natureza nativa,
ou seja, funções que incorporam a própria linguagem
Ex. main( );
- Funções do Desenvolvedor
Já as funções implementadas pelo desenvolver são estruturas de
códigos implementados para a solução de problema especifico.
Ex. ValidaCPF ( );

Algoritmo Avançado 9
Sintaxe
Introdução
Conceitos básica de uma Função
à Programação

Exemplo:
O formato geral da definição de uma função é:

tipo nome-da função (lista-de-argumentos)


{
declarações e sentenças
}

Algoritmo
AULA Avançadoà Lógica de Programação
01: Introdução
Funções nativas da linguagem

➢ Exemplos:

➢ A função main(): utilizada como o construtor do programa ou função


principal.
➢ A função printf() : utilizada para imprimir alguma saída na tela do
usuário.
➢ A função scanf() : utilizada para lê alguma entrada do usuário.
➢ A função getch() :utilizada para aguardar alguma ação do usuário.
➢ Dentre outras.

Algoritmo Avançado 11
Função do desenvolvedor

Exemplos:
➢ A função linha(): utilizada para construir uma linha no programa.
➢ A função soma() : utilizada para somar dois valores e imprimir alguma
saída na tela do usuário.
➢ A função CadastroFornecedor () : utilizada para cadastar informações do
fornecedor.
➢ A função CadastroProduto() :utilizada para cadastrar um produto.
➢ Dentre outras.

Algoritmo Avançado 12
Tipo de Função

➢ Sem argumentos (simples): são funções que executam sem a


intervenção do usuário para informar algum tipo de dado.

➢ Com argumentos (parâmetros) são funções que executam com a


intervenção do usuário para informar algum tipo de dado. Ou seja,
ao ser executada deverá ser informado alguma dados no momento
da execução.

Algoritmo Avançado 13
Exemplo de função

Exemplo de função Simplificada;

int MolduraCabecalho(){
int j;
for (j=1;j<=49;j++)
printf("\xDB");
printf("\n");

} 14
Exemplo de função
#include <stdlib.h>
#include <stdio.h>
#include <conio.h> int main(){
int MolduraCabecalho(){ CadastroCliente();
int j; return 0;
for (j=1;j<=49;j++) }
printf("\xDB");
printf("\n");

}
int CadastroCliente (){
Cli:
char CliSim, nome[80], endereco[80], contato[80];
system("cls");
MolduraCabecalho();
printf("\xDB MENU PESSOAS \xDB\n");
printf("\xDB_______________________________________________\xDB\n");
printf("\xDB 1 - CADASTRO DE CLIENTE \xDB\n");
printf("\xDB_______________________|_______________________\xDB\n");
printf("\xDB 5 - PARA SAIR \xDB\n");
printf("\xDB_______________________________________________\xDB\n");
MolduraCabecalho();
printf("Nome...........:");
gets(nome);
printf("Endereco......:");
gets(endereco);
printf("Contato.......:");
scanf("%s", &contato);
printf("Deseja Cadastrar outro cliente? S-Sim ou N-Nao");
scanf("%s", &CliSim);
if (CliSim=='S'||CliSim=='s'){
goto Cli; 15
}else exit; {
Exemplo de função

Exemplo de função complexa;


int CadastroCliente (){
Cli:
char CliSim, nome[80], endereco[80], contato[80];
system("cls");
MolduraCabecalho();
printf("\xDB MENU PESSOAS \xDB\n");
printf("\xDB_______________________________________________\xDB\n");
printf("\xDB 1 - CADASTRO DE CLIENTE \xDB\n");
printf("\xDB_______________________|_______________________\xDB\n");
printf("\xDB 5 - PARA SAIR \xDB\n");
printf("\xDB_______________________________________________\xDB\n");
MolduraCabecalho();
printf("Nome...........:");
gets(nome);
printf("Endereco......:");
gets(endereco);
printf("Contato.......:");
scanf("%s", &contato);
printf("Deseja Cadastrar outro cliente? S-Sim ou N-Nao");
scanf("%s", &CliSim);
if (CliSim=='S'||CliSim=='s'){
goto Cli;
}else exit; {
system("cls");
}
Algoritmo Avançado} 16
Utilizando o Switch Case

switch (operador){ //Define qual opção deverar ser


executada
case 1: { // Primeiro Caso
bloco de comando
break; //Finaliza o bloco
}
case 2:{
bloco de comando
break;
}
Algoritmo Avançado 17
Função com argumentos (parâmetros)

float multiplica ( float n1, float n2){


float m=0;
m = n1*n2;
return m;
}
printf("Informe o primeiro numero \n");
scanf("%f", &n1);
printf("Informe o segundo numero \n");
scanf("%f", &n2);

printf("O valor da multiplicação eh \n", multiplica(n1,n2));


Algoritmo Avançado 18
Função int e void

Para o desenvolvimento de uma função que tenha como resultado valor


inteiro, não é obrigatoriamente declarar a função do tipo INT. Porem ao
declarar torna-se uma boa pratica de programação.
Exemplo:
Int minutos(){
int hora, min;
printf(“digite a hora e minuto\n”);
scanf(“%d %d” ,&hora,&min );
return(hora*60+min);
}

Algoritmo Avançado 19
Função int e void

De acordo com o comite ANSI(American Nacional Stantdards Institute) Instituto


nacional Americano de padronização. Convencionou que toda função que não
retornará nada é do tipo VOID.
Exemplo:
Void linha(){
int j;
for(j=1;j<=50;j++){
printf(“\xDB”);
printf(“\n”);
}
}

Algoritmo Avançado 20
Introdução
Conceitos à Programação

Registros Struct

Algoritmo
AULA Avançadoà Lógica de Programação
01: Introdução
Registros
Introdução
Conceitos àStruct-Conceito
Programação

É uma estrutura de armazenamento que permite


armazenar mais de um registro de forma dinâmica,
podendo ser utilizada nos mais diversos tipos de
algoritmos.
struct nome
{
variáveis;
} identificador;

Algoritmo
AULA Avançadoà Lógica de Programação
01: Introdução
Registros
Introdução
Conceitos àStruct
Programação

Struct CadastroPessoa
{
Exemplos: int idade ;
carro possui cor, marca, ano, placa, chassi. float altura ;
float peso ;
pessoa possui nome, idade, endereço. char nome[ 5 0 ] ;
} pessoa ;

Algoritmo
AULA Avançadoà Lógica de Programação
01: Introdução
Registros Struct

1 nome: o identificador do tipo da struct, para


usar em definições de outras variáveis.
Sintaxe
2 variáveis: as variáveis que são
struct 1 nome { agregadas/que compõem esta struct.
2 variáveis; 3 identificador: o nome de uma variável do
tipo desta struct. Pelo menos o identificador
}3 identificador;
ou o nome precisam estar presentes na
declaração de uma struct.

Algoritmo Avançado
Registros Struct
Exemplo
/ / Esta declaracao fica antes de int main ( )
Struct {
int idade ; Este exemplo declara uma variável chamada
floa t altura ; “pessoa”, que contem 4 campos (nome, altura,
idade e peso). Para usar cada um dos campos, usa-
floa t peso ; se a sintaxe nome_da_variável.nome_do_campo.
char nome [ 5 0 ] ; Por exemplo.
} pessoa ; printf ( " Digite a idade da pessoa : " ) ;
scanf ( "%d " , &pessoa . idade )

Algoritmo Avançado
Registros Struct

Para se declarar múltiplas variáveis, usa-se o nome da estrutura como o tipo destas
variáveis.
struct dadosPessoa{
int idade ;
floa t altura ;
floa t peso ;
char nome [ 5 0 ] ;
};
int main ( ) {
struct dadosPessoa pessoa1 ;
printf ( " Digite a idade da pessoa 1: " ) ;
scanf ( "%d " , &pessoa1 . idade ) ;
}

Algoritmo Avançado
Registros Struct

Para se declarar um vetor, usa-se o nome da estrutura como o tipo desta variável.
st ruct dadosPessoa {
int idade ;
float altura ;
floa t peso ; Nessa estrutura serão armazenados
char nome [ 5 0 ] ; 100 registros. O laço de repetição
}; fará o controle sobre a quantidade
int main ( ) { de vezes que os registros serão
int i ; repetidos.
struct dadosPessoa alunos [100] ;
for ( i = 0; i < 100; i ++) {
printf ( " Digite a idade da pessoa %d : " , i ) ;
scanf ( "%d " , &alunos [ i ] . idade ) ;
}
}Algoritmo Avançado
ATIVIDADE PRÁTICA NA PRÓXIMA AULA

Algoritmo Avançado
Introdução à Programação
Bibliografia básica
Ascencio, Ana Fernanda Gomes; Araújo, Graziela Santos de. Estruturas de Dados.
Algoritmos, Análise da Complexidade e Implementações em Java e C/C++ [BV:PE].
1. ed. São Paulo: Pearson, 2013.
Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/1995/pdf
Drozdek, Adam. Estrutura de dados e algoritmos em C++ [BV:MB].. 4. ed. São
Paulo,: Cengage Learning,, 2016..
Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.
00:0.00
Manzano, Jose´ Augusto N. G. Algoritmos - Lógica para Desenvolvimento de
Programação de Computadores [BV:MB].. 28. ed. -. Sa~o Paulo: E´rica,, 2016..
Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788536518657/cfi/0!/4/4@0.
00:0.00
Algoritmo
AULA Avançadoà Lógica de Programação
01: Introdução
Bibliografia
Introdução complementar
à Programação

ANDRADE, Mairum Ceoldo. Algoritmos [BV:RE]. 1. ed. Rio de Janeiro: SESES, 2014. Disponível em:
http://repositorio.savaestacio.com.br/site/index.html#/objeto/detalhes/377757CE-7C5A-
438D-A742-482DDDC54D12
Ascencio, Ana Fernanda Gomes. Estrutura de Dados: Algoritmos, Análise da
complexidade e implementações em Java e C/C++[BV:PE]. 1ª ed. São Paulo: Pearson
Pentice Hall, 2010. Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/1995/pdf
Damas, Luís. Linguagem C / Luís Damas ; tradução João Araújo Ribeiro, Orlando
Bernardo Filho.[BV:MB]. 10.ed. - [Reimpr.].. Rio de Janeiro: LTC,, 2016. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788521632474/cfi/6/2!/4/2/2@0:0
Drozdek, Adam. Estrutura de dados e algoritmos em C++ / Adam Drozdek ;
tradução: Roberto Enrique Romero Torrejon; revisão técnica: Flávio Soares
Corrêa da Silva. [BV:MB]. 4a ed. São Paulo,: Cengage Learning., 2016. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.00:0.00
MELO,Ana. Silva,Flavio. Princípios de linguagem de programação[BV:PE]. 1ª
Edição. Rio de Janeiro: Blucher, 2019.
Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/172605/pdf
Projeto
01: eIntrodução
Algoritmo
AULA Otimização
Avançadoà em D de Programação
Lógica

Você também pode gostar