Baixe o app para aproveitar ainda mais
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
Compartilhar