Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Estruturada Prof.ª: Priscilla Abreu pbraz@unicarioca.edu.br Disciplina – Programação Estruturada Roteiro de aula: • Apresentação da professora • Objetivo da aula • Objetivo da disciplina • Informações gerais da disciplina • Informações gerais da Instituição 2 Programação Estruturada Disciplina – Programação Estruturada Objetivos da aula: Apresentar os objetivos e informações gerais sobre a disciplina. 3 Programação Estruturada Disciplina – Programação Estruturada Objetivo: Aprofundar as técnicas de programação estruturada através da Linguagem C. 4 Programação Estruturada Disciplina – Programação Estruturada Ementa: – Funções e recursividade em C. – Manipulação de vetores, matrizes, strings e ponteiros. – Tipos de dados definidos pelo programador. – Manipulação de Arquivos. – Pré-processamento e linkedição. 5 Programação Estruturada Disciplina – Programação Estruturada Bibliografia: Básica: • DEITEL, H.M; DEITEL, P.J.; C - Como programar. 6ª edição. São Paulo: Pearson, 2011. • MIZRAHI, V.V.; Treinamento em linguagem C. 2ª ed.; São Paulo: Pearson Prentice Hall, 2008. • DAMAS, L. Linguagem C. Rio de Janeiro: LTC, 2007. Complementar: • ALBANO, R. S.; ALBANO, S. G. Programação em Linguagem C. Rio de Janeiro: Editora Ciência Moderna, 2010. • ASCENCIO, A. F. G.; Edilene, A. V. Fundamentos da programação de computadores - Algoritmos, Pascal, C/C++ e Java. 2ª edição, São Paulo: Pearson, 2007. • BACKES, A. Linguagem C: Completa e Descomplicada. Editora Campus Elsevier, 2012. • KERNIGHAN, B.W.; RITCHIE, D.M. C: a linguagem de programação. Rio de Janeiro: Campus, 1986. • SCHILDT, H. C Completo e Total. 3ª Edição, MAKRON Books, 1997. 6 Programação Estruturada Metodologia – Uso de metodologias ativas. – Ambiente Virtual de Aprendizagem (AVA): Dúvidas, materiais complementares, informações da disciplina, ... – Indicação de capítulos de livros para estudo e pesquisa; – Recursos materiais utilizados: Quadro branco, datashow, slides de aula, dentre outros recursos . 7 Programação Estruturada Metodologias ativas • O aluno é o protagonista no processo de ensino- aprendizagem. • Uso de vídeos, materiais de leitura, pesquisa e outros recursos para estudo prévio às aulas. • Aula: discussões, esclarecimento de dúvidas, aprofundamento do conteúdo, exercícios, ... 8 Programação Estruturada Metodologia – Como aproveitar melhor o curso? – Estudar previamente; – Assistir às aulas; – Fazer trabalhos e exercícios é indispensável; – Esclarecer as dúvidas que surgirem; – Complementar o aprendizado com estudo em livros, artigos, apostilas; 9 Programação Estruturada Sistema de avaliação O aluno será avaliado em três fases - AV1, AV2 e AV3: – 1ª Avaliação (AV1) e 2ª Avaliação (AV2): Avaliações bimestrais que ocorrem normalmente na metade e ao final do semestre letivo. – 3ª Avaliação (AV3): Avaliação realizada pelos alunos que não obtiveram desempenho acadêmico suficiente para aprovação direta ou para alunos que desejem aumentar a média final. Ocorre somente ao final do período. 10 Programação Estruturada Sistema de avaliação – AV1: – Conteúdo estudado até a data da AV1; – Prova presencial, individual e sem consulta; – Compõe 100% na nota. – AV2: – Todo o conteúdo estudado durante o semestre letivo; 1) – Prova presencial, individual e sem consulta; – Compõe 80% da nota da AV2; 2) – Atividade Prática Supervisionada (APS); – Atividade que compõe 20% da nota da AV2; – Trabalho a ser entregue para o professor. 11 Programação Estruturada Sistema de avaliação – AV3 – Todo o conteúdo estudado durante o semestre letivo; – Prova presencial, individual e sem consulta. – Compõe 100% na nota. Não existe prova de segunda chamada, prova final ou qualquer outro tipo de procedimento que permita uma nova oportunidade de avaliação, que não seja AV1, AV2 ou AV3. 12 Programação Estruturada Sistema de avaliação Para aprovação na disciplina o aluno deve atender, simultaneamente, aos critérios de aproveitamento e frequência, da seguinte forma: – alcançar média final igual ou superior a 7,0 (sete); – e obter frequência mínima de 75% (setenta e cinco por cento). O aluno com média final inferior a 7,0 (sete) ficará reprovado na disciplina. 13 Programação Estruturada Sistema de avaliação – Datas das Provas Escritas: – AV1: 03/04/19 – AV2: – Prova Escrita: 29/05/19 – Atividade Prática Supervisionada: Conjunto de atividades ao longo do semestre. – AV3: 12/06/18 14 Programação Estruturada Observações Importantes – As provas são individuais e realizadas na unidade. – Será OBRIGATÓRIO a assinatura da folha de presença. – O controle das notas é responsabilidade do aluno. Ele deverá verificar a necessidade da realização da AV3 de acordo com a média alcançada. 15 Programação Estruturada Controle de faltas – A presença será lançada no AVA; – Justificativa de faltas: – Atestado médico; – Atestado da empresa; – Deverá conter: nome completo, data e hora; – Deverá ser entregue fotocópia do original com a apresentação do original; – Deverá ser entregue na aula seguinte à ausência. – Limite de justificativas: 25% das aulas! 16 Programação Estruturada Uso do AVA • Materiais da disciplina • Avisos • Dúvidas • APS AVA 17 Programação Estruturada http://ava.unicarioca.edu.br APS – Diversas atividades/questionários realizados no decorrer das aulas. – Nota da APS: média de todas as atividades realizadas. – Até duas das atividades poderão ser descartadas. 18 Programação Estruturada Serviço de Orientação à Aprendizagem (SOA) Apoio psicopedagógico com o qual o aluno pode contar na busca de soluções para questões que interferem em seu desempenho acadêmico, como: organização do estudo, falta de concentração, gerência do tempo e dificuldade de acompanhamento dos conteúdos ministrados nas aulas. Alguns serviços: ̶ Apoio psicopedagógico; ̶ Monitoria; ̶ Cursos de Extensão: ̶ Letras e Números; ̶ Física. ̶ Bits&Bytes Contato: soa@unicarioca.edu.br 19 Programação Estruturada Início em 16/03/2019. Inscrições: extensao@unicarioca.edu.br mailto:soa@unicarioca.edu.br mailto:soa@unicarioca.edu.br mailto:soa@unicarioca.edu.br mailto:soa@unicarioca.edu.br mailto:soa@unicarioca.edu.br mailto:extensao@unicarioca.edu.br Atividades Acadêmicas – NUCAP – Curso de Programação Avançada – PQI 20 Programação Estruturada DÚVIDAS ? 21 Programação Estruturada RELEMBRANDO... EXERCÍCIO 1 Elabore um programa que leia uma quantidade indeterminada de números inteiros. Devem ser solicitados números até que o usuário digite o valor 0. Calcule e imprima a quantidade de números digitados, a soma dos números pares e a média dos números ímpares. 22 Programação Estruturada RELEMBRANDO... #include <stdio.h> int main(){ int qtd=0, num, impar=0, soma_par=0; float medI, somaI=0; printf("Informe um numero inteiro: "); scanf("%d",&num); 23 Programação Estruturada RELEMBRANDO... while(num!=0){ qtd++; if (num % 2 ==0) soma_par=soma_par+ num; else{ impar++; somaI=somaI+num; } printf("Informe um número inteiro: "); scanf("%d",&num); } 24 Programação Estruturada RELEMBRANDO... if(qtd>0){ printf("Quantidade de números lidos: %d",qtd); printf("Soma dos números pares: %d",soma_par); if (impar>0){ medI=somaI/impar; printf("Média números ímpares: %.1f",medI); } else printf("Não foram lidos números ímpares!"); }else printf("Não foi lido número válido!"); return 0; } 25 Programação Estruturada REVISÃO DE FUNÇÕES 26 Programação Estruturada PROCEDIMENTOS E FUNÇÕES • O que é um procedimento? O que é uma função? • Qual a diferença entre procedimentos e funções ? • Como funciona a chamada de um procedimento a partir do corpo principal do programa? • Uma função pode retornar mais de um valor no comando de retorno? • E além do comando de retorno, é possível retornar mais de um valor? Justifique sua resposta. • Em que situações o uso de funções é indicado? • Explique sobre o funcionamento do escopo de variáveis. 27 Programação Estruturada PROGRAMAÇÃO MODULAR Característica fundamental da Programação Estruturada: decompor a lógica de programas complexos em programas menores e, depois, juntá-los para compor o programa final. Essa técnica de programação é denominada programação modular. 28 Programação Estruturada Funções – Blocos de programas que retornam um valor. – Na linguagem C não há o conceito de um programa principal. O que existe é uma função chamada main que é sempre a primeira a ser executada. – Um programa pode ser escrito apenas com a função main e mais as funções existentes nas bibliotecas da linguagem C. No entanto, o uso de funções pode facilitar o desenvolvimento de programas de diversas maneiras. 29 Programação Estruturada Funções da biblioteca C #include <stdio.h> #include <Math.h> int main(){ float n1, res; printf("Informe um número: "); scanf("%f",&n1); res=sqrt(n1); printf("Raiz de %.1f = %.1f",n1,res); return 0; } 30 Programação Estruturada Funções da biblioteca C #include <stdio.h> #include <Math.h> int main(){ int n1,n2,res; printf("Informe a base: "); scanf("%d",&n1); printf("Informe o expoente: "); scanf("%d",&n2); res=pow(n1,n2); printf("%d elevado a %d é: %d",n1, n2,res); return 0; } 31 Programação Estruturada Funções Exemplo: #include <stdio.h> int Square (int n) { return ( n*n ) ; } int main ( ) { int n1, n2 ; printf ( “Entre com um numero : ” ) ; scanf ( “%d” , &n1 ) ; n2 = Square(n1) ; printf (“O seu quadrado vale : %d\n”, n2) ; return 0; } 32 Programação Estruturada return => n2 Chama a função Square Formato geral de uma função tipo NomeDaFuncao (Lista_de_Parametros){ corpo da função } onde: – tipo especifica o tipo de valor que o comando return da função devolverá. – Lista_de_Parâmetros: lista de nome de variáveis com seus respectivos tipos de dados, que recebem os valores dos argumentos quando a função é chamada. 33 Programação Estruturada FUNÇÕES ̶ Para se criar uma função é necessário: ̶ Tipo de retorno/resultado da função; ̶ Um identificador (o nome da função); ̶ Uma lista de parâmetros (que possibilitam a comunicação entre a função principal e a função que está sendo criada); ̶ As ações a serem executadas (que formam o corpo da função). ̶ As funções devem ser definidas antes da função main. 34 Programação Estruturada Funções Há basicamente duas maneiras de terminar a execução de uma função. Normalmente usa-se o comando return para retornar o resultado da função. Portanto, quando o comando return expressão; for executado, o valor da expressão é devolvido. Quando não há valor para retornar o comando return não precisa ser usado e a função termina quando a chave que indica o término do corpo da função é atingido. 35 Programação Estruturada Funções: o tipo void Em inglês, void quer dizer vazio e é isto mesmo que o void é. Ele nos permite fazer funções que não retornam nada, o que chamamos de procedimento. Podemos agora escrever o protótipo de uma função que não retorna nada: void nome_da_função (declaração_de_parâmetros); Numa função, como a acima, não temos valor de retorno na declaração return. Aliás, neste caso, o comando return não é necessário na função. 36 Programação Estruturada Procedimento ̶ Exemplo: Utilização de programação modular: #include <stdio.h> float NOTA1,NOTA2; void leitura(){ printf("Digite a primeira nota: "); scanf("%f",&NOTA1); printf("Digite a segunda nota: "); scanf("%f",&NOTA2); } int main(){ float MEDIA; leitura(); MEDIA = (NOTA1 + NOTA2) / 2; printf("Media = %f",MEDIA); return 0; } 37 Programação Estruturada Escopo de variáveis As variáveis podem ser declaradas basicamente em três lugares: – dentro de funções, – fora de todas as funções, – na lista de parâmetros das funções. As variáveis definidas dentro das funções são chamadas de variáveis locais, as que aparecem fora de todas as funções chamamos de variáveis globais e aquelas que aparecem na lista de parâmetros são os parâmetros formais. 38 Programação Estruturada Escopo de variáveis Variáveis Locais - Exemplo #include <stdio.h> void pares(){ int i; for (i = 2; i <= 10; i += 2){ printf ("%d: ", i); } } int main (){ pares (); system(“Pause”); return 0; } 39 Programação Estruturada Escopo de variáveis Variáveis Globais – Exemplo #include <stdio.h> int i; void soma1(){ i += 1; printf(" Funcao soma1: i = %d\n", i); } int main (){ i = 0; soma1 (); printf(" Funcao main : i = %d\n", i); return 0; } 40 Programação Estruturada Passagem de parâmetros #include <stdio.h> float sqr (float num) { num=num*num; return num; } void main(){ float n,sq; printf ("Entre com um numero: "); scanf ("%f",&n); sq=sqr(n); printf ("\n\nO numero original e: %f\n",n); printf ("O seu quadrado vale: %f\n",sq); return 0; } 41 Programação Estruturada Exercício EXERCÍCIO 2 Faça um programa que leia um número positivo e utilize uma função para calcular o fatorial do número lido, que deverá ser passado por parâmetro. Ao final, o programa deve exibir o número lido e seu fatorial. 42 Programação Estruturada Exercício #include<stdio.h> int fatorial(int n){ int aux=1, i; for (i=n; i>=1;i--) aux=aux*i; return aux; } int main(){ int num; printf("Informe o número:\n"); scanf("%d",&num); printf("Fatorial de %d é: %d", num, fatorial(num)); } 43 Programação Estruturada Parâmetros ̶ A passagem de parâmetros entre as sub-rotinas se dá de duas formas: ̶ Passagem por valor; ̶ Passagem por referência. 44 Programação Estruturada Passagem de parâmetros Parâmetros formais – passagem por valor Na passagem por valor uma cópia do valor do argumento é passado para a função. Neste caso, a função que recebe este valor, ao fazer modificações no parâmetro, não estará alterando o valor original, que somente existe na função que chamou. 45 Programação Estruturada Passagem de parâmetros Parâmetros formais – passagem por valor #include <stdio.h> int soma_dobro (int a, int b){ int soma; a = 2*a; b = 2 *b; soma = a + b; return soma; } void main () { int x, y, res; printf ("Entre com o primeiro numero: "); scanf ("%d",&x); printf ("Entre com o primeiro numero: "); scanf ("%d",&y); res=soma_dobro(x, y); printf (“Soma: %d",res); system(“Pause”); } 46 Programação Estruturada Passagem de parâmetros por valor 47 Programação Estruturada Função main y x res 5 3 16 Função soma_dobro b a soma 5 3 16 5*2 = 10 3*2 = 6 res = soma_dobro(5,3) return soma Passagem de parâmetros Parâmetros formais – passagem por referência Na passagem por referência o que é passado para a função é o endereço do parâmetro. Portanto, a função pode modificar o valor do argumento através do endereço. Para a passagem de parâmetros por referência é necessário o uso de ponteiros: uso dos operadores * e &. & - retorna o endereço de uma variável na memória. * - retorna o conteúdo armazenado no endereço da referida variável. 48 ProgramaçãoEstruturada Passagem de parâmetros Parâmetros formais – passagem por referência #include <stdio.h> #include<stdlib.h> int soma_dobro (int *a, int *b){ int soma; *a = 2* (*a); *b = 2 * (*b); soma = *a + *b; return soma; } void main () { int x, y, res; printf ("Entre com o primeiro numero: "); scanf ("%d",&x); printf ("Entre com o primeiro numero: "); scanf ("%d",&y); res=soma_dobro(&x, &y); printf (“Soma: %d",res); system(“Pause”); } 49 Programação Estruturada Passagem de parâmetros por referência 50 Programação Estruturada Função main y x 5 3 Função soma_dobro b a 800 300 *a = (*a) *2 *b = (*b) *2 res = soma_dobro(800, 300) 800 300 Passagem de parâmetros por referência 51 Programação Estruturada Função main y x res 10 6 16 Função soma_dobro b a soma 800 300 16 *a = (*a) *2 *b = (*b) *2 res = soma_dobro(800, 300) return soma 800 300 10 6 DÚVIDAS ? 54 Programação Estruturada
Compartilhar