Buscar

Programação Estruturada parte 1

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

Continue navegando