Buscar

lista suprogramacao

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

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

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ê viu 3, do total de 7 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

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

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ê viu 6, do total de 7 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

Prévia do material em texto

INTEIRORODUÇÃO À CIÊNCIA DA COMPUTAÇÃO – LINGUAGEM C 
1 
 
1
EXEMPLOS DE APLICAÇÕES DE SUBPROGRAMAÇÃO 
1. Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada 
linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e 
secundária são todas iguais. Exemplo: A matriz 










2103
654
708
 é um quadrado mágico. 
 Dada uma matriz quadrada nn
A ×
, verificar se A é um quadrado mágico. 
- um subprograma para ler a matriz -um subprograma para imprimir a matriz 
- um subprograma para somar os valores das linhas 
- um subprograma para somar os valores das colunas 
- um suprograma pra somar a diagonal principal e outro para a diagonal secundária. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Algoritmo quadrado_magico 
inteiro n,A[10][10],L[10],C[10] 
inteiro chave=0 
inteiro DP,DS,k; 
Escreva " Digite as dimensoes do quadrado" 
Leia n 
leia_matriz(A,n,n) 
imprima_matriz(A,n,n) 
todas_linhas(a,n,L) 
imprima_vetor(L,n) 
todas_colunas(A,n,C) 
imprima_vetor(C,n) 
DP=diagonal_principal(A,n) 
 Escreva DP 
DS=diagonal_secundaria(A,n) 
 Escreva DS 
 Para k=2,n,1 
 Se (L[1]≠L[k] ou C[1] ≠C[k] ou L[1] ≠DP ou 
L[1] ≠DS ou L[1] ≠C[1]) então 
 chave=1 
 Fim se 
fim para 
 Se (chave=0) então 
 Escreva "EH um quadrado magico “ 
 Senão 
 Escreva "Nao EH um quadrado magico " 
 Fim 
%%%%%%%%%%%%%%%%%%%%%% 
todas_linhas( X, m, Y) 
Inteiro m,X[10][10],Y[10],soma,i,j; 
 Para i=1;m;1 
 soma=0 
 Para j=1;m;1 
 soma=soma+X[i][j] 
 Fim_para 
 Y[i]=soma 
 Fim para 
Fim subrotina 
 
todas_colunas( X,m, Y) 
 inteiro soma,i,j,m,X[10][10],Y[10] 
 Para j=1;m;1 
 soma=0; 
 Para i=1;m;1 
 soma=soma+X[i][j] 
 Fim_para 
 Y[j]=soma 
 Fim para 
Fim subrotina 
 
Função inteira diagonal_principal(X, m) 
inteiro soma,i, m,X[10][10] 
 soma=0 
 Para i=1;m;1 
 soma=soma+X[i][i] 
 Fim para 
retorne(soma) 
Fim função 
 
Função inteira diagonal_secundaria(X, m) 
Inteiro soma,i,j, m,X[10][10] 
 soma=0 
Para i=1;m;1 
 Para j=1;m;1 
 Se (i+j=m+1) 
 soma=soma+X[i][j] 
 Fim se 
 Fim para 
Fim para 
retorne(soma) 
Fim função 
 
 
 
 
INTEIRORODUÇÃO À CIÊNCIA DA COMPUTAÇÃO – LINGUAGEM C 
2 
 
2
 
2. Exercício: Faça um algoritmo que calcula a média das notas de N alunos e determine 
- a média de todos os alunos. 
- o número de alunos que tiveram nota superior a média calculada; 
- o aluno que teve a maior nota e o aluno que teve a menor nota. 
- Imprima uma lista com o nome dos alunos e a nota na ordem decrescente de notas. 
- Digite um nome e verifique se o nome consta na lista e imprima o nome e a nota correspondente. 
 
OBSERVAR: - atribuição de valores strings (caracteres) a uma variável; 
 - comparação entre duas variáveis caracteres; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Algoritmo ORDENAR_NOTAS 
Caracter nome[100][15],nomep[15] 
Real n 
inteiro nn, resposta, quantidade 
real nota[100], media 
 
Escreva "Digite a quantidade de alunos" 
Leia n 
nn=n 
Escreva " Digite o nome e a nota dos alunos" 
leia_vetores_nome_nota(n,nome,nota) /* TIPO SUBROTINA- retorna mais de um valor*/ 
 
media=tmedia(n,nota) /* TIPO FUNÇÃO- retorna um valor*/ 
Escreva " Media : ", media 
 
Escreva “ Relacao de todos os alunos em ordem decrescente de nota" 
ordem_decrescente(n,nome,nota) /*TIPO SUBROTINA- retorna mais de um valor*/ 
imprima_vetores(n,nome,nota) /*TIPO SUBROTINA- não retorna nada*/ 
 
quantidade=superior(n,nota,media) /* TIPO FUNÇÃO- retorna um valor*/ 
Escreva “ Numero de alunos com nota acima da media ", quantidade 
Escreva “ Aluno com maior nota:”, nome[1], “nota: ", nota[1] 
Escreva “ Aluno com menor nota:”, nome[nn], “nota: ", nota[nn] 
 
Escreva “ Digite o nome que deseja procurar " 
Leia nomep 
resposta=busca(n,nome,nomep) /* TIPO FUNÇÃO- retorna um valor*/ 
se (resposta≠0) 
Escreva “ Aluno procurado”, nome[resposta], “ tirou a nota: ", nota[resposta] 
senão 
Escreva “ Aluno nao encontrado" 
Fim se 
Fim algoritmo 
 
 
INTEIRORODUÇÃO À CIÊNCIA DA COMPUTAÇÃO – LINGUAGEM C 
3 
 
3
ordem_decrescente (real vn,caracter vnome[100][15],real vnota[100]) 
real aux,n 
inteiro i,j 
caracter aux2[15] 
Para i=1,vn,1 
 Para(j=ij<=vnj++) 
 Se (vnota[i] < vnota[j]) 
 {aux=vnota[i] 
 vnota[i]=vnota[j] 
 vnota[j]=aux 
 
 aux2=vnome[i]) 
 vnome[i]=vnome[j] 
 vnome[j]=aux2 
 fim se 
 fim para 
fim para 
fim subrotina 
 
/***********************************************************************************************/ 
 
 
 
leia_vetores_nome_nota(real vn,caracter 
 vnome[100][15], real vnota[100]) 
inteiro i 
Para i=1,vn,1 
 Leia vnome[i],&vnota[i] 
Fim para 
Fim funcao 
 
/******************************/ 
imprima_vetores(real vn, caracter vnome[100][15], real 
vnota[100]) 
 
inteiro i 
Para i=1,vn,1 
 
 Escreva vnome[i],vnota[i])} 
Fim para 
 
/***********************************/ 
real tmedia(real vn, real vnota[100]) 
inteiro i 
 real soma,m 
soma=0 
Para i=1,vn,1 
 soma=soma+vnota[i] 
m=soma/vn 
return(m) 
fim subprograma 
 
/******************************************/ 
inteiro busca(real vn,caracter vnome[100][15],caracter 
vnomep[15]) 
inteiro resul,i 
 resul=0 
Para i=1,vn,1 
 Se (vnome[i]==vnomep) 
 resul=i }Fim se 
Fim para 
retorne (resul) 
fim funcao 
 
 
/******************************************/ 
Função inteiro superior(real vn,real vnota[100],real 
smedia) 
inteiro i,cont 
cont=0 
Para i=1,vn,1 
 se (vnota[i]>smedia) entao 
 cont=cont+1 
fim se 
fim para 
retorne cont 
 
fim funcao 
 
INTEIRORODUÇÃO À CIÊNCIA DA COMPUTAÇÃO – LINGUAGEM C 
Departamento de Matemática 
Prof. Erica 
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LISTAS DE EXERCÍCIOS: O PROGRAMA PRINCIPAL DEVE CONTER APENAS AS INSTRUÇÕES DE CHAMADAS 
DE SUBPROGRAMAS E APENAS OS CÁLCULOS ESTRITAMENTE NECESSÁRIOS. SEMPRE QUE POSSÍVEL 
UTILIZE SUBALGORITMO TIPO FUNÇÃO 
 
 
1. Refaça a lista 5 utilizando subalgoritmos para: 
a. Ler matriz 
b. Imprimir matriz 
c. Ler vetor 
d. Imprimir vetor 
e. Transportar elementos da matriz para um vetor e vice-versa 
f. Determinar se um número é primo – tipo função 
g. Calcular o fatorial de um número – tipo função 
h. Em todos os cálculos que resultarem em um resultado utilizar o subalgoritmo tipo função 
 
2. Dado um vetor X com n elementos, fazer um algoritmo que calcule os n-1 elementos do vetor Y pela fórmula 
1n,....2,1i XXY i1ii −=−= +
 
a)faça uma subprograma para ler o vetor X 
b)faça uma subprograma para imprimir o vetor X e o vetor Y 
c) faça uma subprograma para calcular o vetor Y 
Todos os argumentos com passagem por referência, exceto a dimensão do vetor (n) que deve ser passada por valor. 
 
3. Escrever uma programa que determina o valor de Y, utilizando um subprograma para ler o vetor X e uma funçãopara computar Y 





>+−
=
<++
=
0X seX11
0X se0
0X seX11
)X(Y
2
2
 
 
ordem_decrescente (float vn,char vnome[100][15],float vnota[100]) 
{float aux,n; 
int i,j; 
char aux2[15]; 
for (i=1;i<=vn-1;i++) 
 for (j=i;j<=vn;j++) 
 if (vnota[i] < vnota[j]) 
 {aux=vnota[i]; 
 vnota[i]=vnota[j]; 
 vnota[j]=aux; 
 
 /*FUNCAO STRCPY UTILIZADA PARA ARMAZENAR UM VALOR STRING EM UMA VARIAVEL*/ 
 strcpy(aux2,vnome[i]); /* atribui o valor de vnome[i] para a variável aux2 */ 
 strcpy(vnome[i],vnome[j]); /* atribui o valor de vnome[j] para a variável vnome[i] */ 
 strcpy(vnome[j],aux2) ; /* atribui o valor de aux2 para a variável vnome[j] */ 
 } 
 
 } 
 
 
INTEIRORODUÇÃO À CIÊNCIA DA COMPUTAÇÃO – LINGUAGEM C 
Departamento de Matemática 
Prof. Erica 
55
4. Fazer um programa, utilizando Subprogramas, para resolver o seguinte problema: Dois conjuntos A e B de mesma 
dimensão contêm 10 elementos cada. Uma variável P é igual a um dos elementos de A. Localizar a posição PP do 
elemento de A que é igual a P e imprimir o valor do elemento correspondente situado no vetor B. 
 - um subprograma para ler os vetores 
 -função para localizar o elemento de A que é igual a P 
 -função para determinar o valor de B na posição PP 
 
 
5. Fazer um algoritmo, utilizando subprogramas, para obter e imprimir a soma dos termos de um vetor de n posições 
cujos elementos são números reais 
 
6. Fazer um subalgoritmo, tipo Subprograma, para retornar um valor numérico do polinômio x4-3x2+4x2-x+1 
- subalgoritmo para ler o vetor X 
- subalgoritmo tipo função para calcular o polinômio 
 
 
7. Dada uma matriz quadrada A, de dimensão n, escrever um programa , para trocar a diagonal principal pela diagonal 
secundária. Utilize subprogramas para ler e imprimir a matriz A e para realizar a troca. Por exemplo, se a dimensão 
fosse 8, teríamos 
A11 é trocado com A18 
A22 é trocado com A27 
......................................... 
A88 é trocado com A81 
-Subalgoritmo para ler a matriz 
-subalgoritmo para imprimir a matriz (original e alterada, um de cada vez) 
-subalgoritmo para trocar as diagonais 
 
8. Escreva um algoritmo que leia uma matriz Anxm e determine o maior elemento, em módulo. 
subprograma de leitura, 
subprograma de impressão 
subprograma tipo função para determinar o maior valor de A, em módulo 
 
9. Repita o exercício anterior utilizando no item c) uma subprograma que determina o maior valor e A e também as 
coordenadas i (linha) e j (coluna) onde este valor ocorrer. 
 
10. Escrever um programa que calcula o determinante de uma matriz A3x3. Utilizar subprogramas para ler e imprimir 
a matriz e um subprograma tipo função para determinar o valor do determinante da matriz. 
 
11. Dados uma matriz Anxm e um vetor X de dimensão mx1, escrever um programa para calcular o vetor B, dado por 
 
1,2,....ni XAB
m
1j
jiji ==∑
=
 
Utilizar subprogramas 
- um ler a matriz A 
- imprimir a matriz A, 
- ler o vetor 
-imprimir o vetor X e B (um de cada vez) - determinar o vetor X 
 
12. Fazer um algoritmo, utilizando subprogramas para obter e imprimir o fatorial de diferentes números inteiros, 
positivos, situados no intervalo entre 4 e 30. Utilizar função para calcular o fatorial 
 
 
13. Elabore um algoritmo para ler um vetor de 10 valores inteiros positivos e imprimir apenas os elementos do vetor 
cujo valor seja igual a posição que o elemento ocupa no vetor. Imprimir também o vetor lido. Utilize subprogramas 
para ler e imprimir. Utilize subprograma para fazer a verificação. 
 
14. Elabore um algoritmo para ler um vetor VET de 16 valores inteiros positivos e gerar uma matriz Mat(4,4) por linha, 
em que os 4 primeiros elementos do vetor devem formar a 1a linha da matriz, os 4 elementos seguintes a 2 coluna 
 
INTEIRORODUÇÃO À CIÊNCIA DA COMPUTAÇÃO – LINGUAGEM C 
Departamento de Matemática 
Prof. Erica 
66
da matriz e assim por diante. Imprimir o vetor e matriz Mat por linha. Utilize subprogramas para ler, formar a matriz 
e imprimir. 
 
 
15. Dada uma matriz Mnxn, transportar para um vetor D apenas os elementos da diagonal da matriz M. Imprimir a 
matriz e o vetor. Utilize subprogramas para ler, formar o vetor e imprimir. 
 
16. Elabore um algoritmo que leia dois vetores inteiros V1 e V2, de 8 elementos cada. Gerar uma matriz M por linha, 
tal que: Os elementos do vetor V1 devem formar as linhas ímpares da matriz e elementos de V2 devem formar as 
linhas pares da matriz. Imprimir os vetores e a matriz gerada. Utilize subprogramas para ler, formar a matriz e 
imprimir. 
 
17. Dada uma matriz M(5,5), transportar para um vetor P apenas os elementos primos da matriz M. Imprimir a matriz 
e o vetor. Utilize subprogramas para ler, formar o vetor e imprimir. 
 
 
18. Dizemos que uma matriz inteira Anxn é uma matriz de permutação se em cada linha e em cada coluna houver 
1−n
 elementos nulos e um único elemento igual a 1. 
 Exemplo: A matriz abaixo é de permutação: 
 
A= 












1000
0001
0100
0010
 Observe que A=










−
−
100
021
012
 não é de permutação. 
 Faça um subalgoritmo tipo função que determina se uma dada matriz é de permutação 
 
 
19. Deseja-se publicar o número de acertos de cada aluno em uma prova em forma de testes. A prova consta de 5 
questões, cada uma com cinco alternativas identificadas por A, B,C, D e E. Para isso são dados: o cartão gabarito, o 
cartão respostas para cada aluno, contendo o seu número e as respostas. Faça um algoritmo que resolva o problema 
e imprima os resultados. Faça o teste de mesa. 
- Faça um subalgoritmo para ler um vetor (ler o cartão gabarito e o cartão resposta, um de cada vez) 
- Faça um subalgoritmo tipo função para calcular o número de acertos. 
 
 
Elabore um algoritmo para ler um vetor V de 20 valores inteiros positivos, construir um vetor com o fatorial dos elementos 
pares de V. Construir um vetor com a potência de 5 de todos os valores ímpares do vetor V. 
- subalgoritmo para ler um vetor 
-subalgoritmo para imprimir um vetor 
 - subalgoritmo para construir os vetores 
 
 
20. Ler uma variável de 100 elementos numéricos e verificar se existem elementos iguais a 25. Se existirem, escrever 
as posições em que estão armazenados. 
- subalgoritmo para ler um vetor 
-subalgoritmo para imprimir um vetor 
 - subalgoritmo para gerar as posições 
 
 
21. Fazer um algoritmo que leia um vetor e imprima soma de todos os elementos do vetor 
- subalgoritmo tipo função para determinar a soma 
 
22. Fazer um algoritmo que leia um vetor e imprima soma de todos os elementos primos do vetor 
- subalgoritmo para ler um vetor 
-subalgoritmo para imprimir um vetor 
 - subalgoritmo tipo função para determinar a soma 
 
 
INTEIRORODUÇÃO À CIÊNCIA DA COMPUTAÇÃO – LINGUAGEM C 
Departamento de Matemática 
Prof. Erica 
77
23. Fazer um algoritmo que leia uma matriz e imprima soma de todos os elementos da matriz 
- subalgoritmo para ler uma matriz 
-subalgoritmo para imprimir uma matriz 
 - subalgoritmo tipo função para determinar a soma 
 
24. Fazer um algoritmo que leia uma matriz inteira A LAxCA . Transporte para um vetor V1 os elementos primos as 
matriz, para um vetor V2 os elementos abundantes da matriz e para um vetor V3 os elementos defectivos 
da matriz. Imprimir a matriz e os vetores. 
Primos� dois divisores 
Abundantes� soma dos divisores próprios é maior que o número 
Defectivo� soma dos divisores próprios é menor que o número.Utilize um subalgoritmo para transportar os elementos para os vetores. O subalgoritmo deve retornar os 
vetores e os contadores. 
 
25. Fazer um algoritmo que leia três matrizes ALAxCA, BLBxCB, CLCxCC e realize a operação abaixo, se possível: 
 
R= (A * B) * C 
Utilize um subalgorimto para ler as matrizes uma de cada vez, um subalgoritmo para imprimir as matrizes, 
uma de cada vez. Um subalgoritmo para multiplicar duas matrizes. O subalgoritmo deve verificar as 
dimensões. 
 
 
26. Fazer os demais exercícios da lista de vetores e matrizes seguindo os modelos de utilização de subalgoritmos acima. 
Sempre que possível, utilize o subalgoritmo tipo função (que retorna apenas um valor).

Outros materiais