Buscar

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

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CCT0083 - Algoritmo Avançado
Aula 03 - Revisão Função e Struct
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Algoritmo Avançado
Algoritmo Avançado
Aula 03 - Revisão função e Struct
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Objetivo 
- 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 Avançado
IMPLEMENTANDO FUNÇÕES
4Algoritmo Avançado
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
5Algoritmo Avançado
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.
6Algoritmo Avançado
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.
7Algoritmo Avançado
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.
8Algoritmo Avançado
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 ( );
9Algoritmo Avançado
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
Exemplo:
O formato geral da definição de uma função é:
Algoritmo Avançado
Sintaxe básica de uma Função
tipo nome-da função (lista-de-argumentos)
{
declarações e sentenças
}
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.
11Algoritmo Avançado
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.
12Algoritmo Avançado
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.
13Algoritmo Avançado
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
15
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int MolduraCabecalho(){
int j;
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;
}else exit; {
system("cls");
int main(){
CadastroCliente();
return 0;
}
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");
}
} 16Algoritmo Avançado
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;
}
17Algoritmo Avançado
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));
18Algoritmo Avançado
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);
}
19Algoritmo Avançado
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”);
}
}
20Algoritmo Avançado
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
Algoritmo Avançado
Registros Struct
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
Algoritmo Avançado
Registros Struct-Conceito
É 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;
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
Exemplos:
carro possui cor, marca, ano, placa, chassi.
pessoa possui nome, idade, endereço.
Algoritmo Avançado
Registros Struct
Struct CadastroPessoa
{
int idade ;
float altura ;
float peso ;
char nome[ 5 0 ] ;
} pessoa ;
Sintaxe
struct 1 nome {
2 variáveis;
}3 identificador;
Algoritmo Avançado
Registros Struct
1 nome: o identificador do tipo da struct, para
usar em definições de outras variáveis.
2 variáveis: as variáveis que são
agregadas/que compõem esta struct.
3identificador: o nome de uma variável do
tipo desta struct. Pelo menos o identificador
ou o nome precisam estar presentes na
declaração de uma struct.
Exemplo
/ / Esta declaracao fica antes de int main ( )
Struct {
int idade ;
floa t altura ;
floa t peso ;
char nome [ 5 0 ] ;
} pessoa ;
Algoritmo Avançado
Registros Struct
Este exemplo declara uma variável chamada 
“pessoa”, que contem 4 campos (nome, altura, 
idade e peso). Para usar cada um dos campos, usa-
se a sintaxe nome_da_variável.nome_do_campo. 
Por exemplo.
printf ( " Digite a idade da pessoa : " ) ;
scanf ( "%d " , &pessoa . idade )
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 ;
char nome [ 5 0 ] ;
} ;
int main ( ) {
int i ;
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
Registros Struct
Nessa estrutura serão armazenados
100 registros. O laço de repetição
fará o controle sobre a quantidade
de vezes que os registros serão
repetidos.
Algoritmo Avançado
ATIVIDADE PRÁTICA NA PRÓXIMA AULA
Introdução à Programação
AULA 01: Introdução à Lógica de 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 Avançado
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Bibliografia complementar
Projeto e Otimização em D
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
Algoritmo Avançado

Outros materiais