Você está na página 1de 9

Meu ttulo aqui

Agora o resto: subrotina EXAME(NMAX,N,FM,NUM.NOTA,F,NUMEX,NOTEX,NEX) declare NMAX, {limite superior das variveis compostas} N, {nmero de alunos da turma) FM, (freqncia mnima} NEX, (nmero de alunos que podem fazer o exame) {especial) {varivel auxiliar) numrico declare NUM NOTAI 1 :NMAX], FF1 :NMAX], NUMEX 1 :NMAX], Librotina PERCEN(NMAX,N,FM,NOTA,F,PA) declare NMAX, {limite superior da varivel composta} N, {nmero de alunos da turma} FM, {freqncia mnima) PA, {percentagem de alunos aprovados) NA, {nmero de alunos aprovados} {varivel auxiliar} nmenco declare NOTA 1: NMAX], {nota dos alunos da turma} F {freqncia dos alunos da turma) numrico NA -0 1*-1 re se 1> N J ento interrompa fim se se NOTA _ 6OeF _ FM J fl NA NA + 1 fim se 14-I+ 1 finu NA x 100 PA N flrn Transformando o exemplo 2.17, que coloca em ordem crescente os elementos de um conjunto, em Sub e fazendo algumas adaptaes para este problema, tem-se: br CLASSIFICA(NMAX,N,NUM,NOTA) i NMAX, {limite superior das variveis compostas } N, (nmero de alunos} SDIV(A,SA) {Clculo da soma dos divisores prprios de A) {Verificao se SA est dentro do intervalo) NOTEX :NMAX] numrico 194 {nmero de matrcula dos alunos) { nota dos alunos} freqncia dos alunos) (nmero de matrcula dos alunos que) 195

{variveis auxiliares) ento interrompa fim se AUX1 - NUM AUX2 - NOTA JI 1* 1*-I--1 se 1 = 1 ou AUX1 > NUMIJI T ento interrornp fim se NUM + 11<- NUM NOTA + 1] - NOTA fim repita se 1 = o NUM NOTA - AUX2 o NUM + 1] - AUX1 NOTA + 1] - AUX2 fim se J1 fim repita fimsubrotina Como o nmero de alunos no foi dado, ser utilizado como FLAG um nmero de matrcula negativo. O algoritmo dado por: (Declarao da sub-rotina que verifica quais os alunos) {que podem fazer exame especial) ____ EXAME(NMAX,N,FM,NUM,NOTA,F,NUMEX,NOTEX,NEX) NMAX, {limite superior das variveis compostas) N, (nmero de alunos da turma) FM, {freqncia mnima) NEX, {nmero de alunos que p odem fazer o exame) {especial) 1 {varivel auxiliar) (nmero de matrcula dos alunos) nota dos alunos} (freqncia dos alunos) (nmero de matrcula dos alunos) {que podem fazer exame especial) {nota dos alunos que podem fazer) (exame especial) NEX4-0 pita se J ento interro fim se se F _ FM e NOTA _ 40 eNOTAFI] <60 n NEX - NEX + 1 NUMEXINEXI - NUMII] NOTEXINEXI - NOTAIL] fim se I1 fim repita fim subrotina Declarao da sub-rotina que calcula a percentagem de) alunos aprovados) subrotina PERCEN(NMAX,N,FM,NOTA.F,PA) declare NMAX. {limite superior da varivel composta) N, {nmero de alunos da turma) FM, {freqncia mnima} PA, {percentagem de alunos aprovados) NA, (nmero de alunos aprovados)

I (varivel auxiliar) numrico declare NOTAI 1 :NMAX], F :NMAXJ numrico NA - O If-l repi se 1> N T ento interrompa fim se se NOTA _ 60 e F _ FM J ento NA - NA + 1 fim se l1 fim repita NA x 100 PA {Declarao da sub-rotina que classifica em ordem) { crescente a relao dos alunos que podem fazer exame) {especial } (limite superior das variveis) {compostas } {nmero de alunos) {variveis auxiliares) {variveis auxiliares) (nmero de matrcula dos alunos} {nota dos alunos) AUXI,AUX2 nnierico declare NUMI l:NMAX NOTAL 1 :NMAX] numrico J4-2 J>N {nrnero de matrcula dos alunos) {nota dos alunos) Aigoritmo subrotina (nota dos alunos da turma) {freqncia dos alunos da turma) fim subrotina numrico ki NUM NOTA :NMAX], F NUMEX :NMAX], NOTEX] 1 :NMAX] nillnrico subrotina CLASSIFICA(NMAX,N,NUM,N0TA) declare NMAX, N, I,J. AUX numrico declare NUMI1:NMAXI, NOTA 1 :NMAX] numrico J 96 197 fim repita N4-I- 1 (Para a disciplina Geometria Analtica:) {Verificao dos alunos que podem fazer exame especial} EXAME( NMAX,N,FM 1 J,NUM,NOTAG,FREQG.NIJMEX,NOTAEX { Escrita dos alunos que podem fazer exame especial CLASSIFICAi NMAX.NEX.NUMEX,NOTAEX) I4-1 r

se 1 > NEX J ento interrompa fim se escreva NUNIEX 14-1+ 1 fim repita {Escrita da percentagem dos alunos j aprovados} PERCEN(NMAX,FMI 1 ],N,NOTAG,FREQG,PA) escreva P {Escnta da percentagem dos alunos que podem fazer} {exame especial NEX X 100 P *N escreva PA {Para a disciplina Programao de Computadores:) (Verificao dos alunos que podem fazer exame especial} EXAME(NMAX,N,FM [ (Escrita dos alunos que podem fazer exame especial } CLASSIFICA(NMAX,NEX,NUMEX,NOTAEX) I*-l se 1> NEX ento interromna fim se escreva NUMEX I 1 fim repita {limite superior das variveis compostas) {varivel auxiliar) ______ (nmero de alunos da turma} {percentagem) (nmero de alunos que podem fazer exame} {especial } {Para a disciplina Clculo 1: {Verificao dos alunos que podem fazer exame especial} EXAME(NMAX,N,FM Escrita dos alunos que podem fazer exame especial) CLASSIFICA(NMAX,NEX,NUMEX,NOTAEX) l se 1 > NEX J ento interrompa fim se escreva NUMEX 1] ,NOTAEX III se J > N ento interro fim se AUX1 4-NUMIJ] AUX2 *- NOTAIJJ 1 l*-l--1 se 1= 1ouAUXI >NUMIIJ ento interrompa NUM + 1] - NUMf 1] NOTA + 114- NOTA fim repita se 1 = J o NUM NOTA AUX2 no NUM

NOTA + 1] AUX2 fim se J4-J+ 1 fim repita fim subrotina {Declarao das variveis utilizadas) declare FM :3J, {freqncia mnima exigida) MAT {nmero de matrcula dos alunos} NOTAG :511, (nota dos alunos de Geom. Analtica) NOTAP 1:51], (nota dos alunos de P. de Computadores) NOTAC (nota dos alunos de Clculo I} FREQG {freqncia dos alunos de Geom. Anal.) FREQP {freqncia dos alunos de P. de Comp.) FREQC :511, (freqncia dos alunos de Clculo 1) NUMEX (nmero de matrcula dos alunos que} (podem fazer exame especial) NOTAEX 1:51] (nota dos alunos que podem fazer exame) {especial} numrico declare NMAX, N, P, NIEX numrico NMAX 51 (Leitura da freqncia mnima exigida nas 3 disciplinas) i (Leitura da matrcula, notas e freqncias dos alunos} I rpiia leia MAT NOTAC se MATII <0 ento interrompa im se {Escrita da percentagem dos alunos j aprovados) PERCEN(NMAX,N,FM escreva PA (Escrita da percentagem dos alunos que podem fazer} (exame especial) NEX X 100 PA N escreva PA 198 199 fi (Escrita da percentagem dos alunos j aprovados) PERCEN(NMAX,N.FMI 3 ].NOTAC.FREQC,PA) va PA escreva P fim algoritmo {Escrita da percentagem dos alunos que podem fazer} {exame especial) Pode-se notar que, para cada disciplina, ainda existe um grupo de comandos que se repete, diferin do, apenas, pelas variveis envolvidas. Portanto, faz-se necessria a utilizao de mais uma sub-rotina, declarada como se segue: subrotina DISCIPLINA {Declarao dos parmetros e variveis utilizadas} declare (limite superior das variveis compostas} nmero de alunos da turma} (freqncia mnima} nmero de alunos que podem fazer o exame}

{especial } {varivel auxiliar) (nmero de matrcula dos alunos} {nota dos alunos) {freqncia dos alunos } {nmero de matrcula dos alunos) {que podem fazer exame especial) { nota dos alunos que podem fazer} (exame especial) { Verificao dos alunos que podem fazer exame especial) EXAME(NMX,N,FM,NUM,NOTA,FREQ,NUMEX,NOTAEX,NEX) {Escrita dos alunos que podem fazer exame especial) CLASSIFICA(NMAX,NEX,NUMEX,NOTAEx) l*-l r se 1> NEX J ento interrompa fim se escreva NUMEX I 1 fim repita {Escrita da percentagem dos alunos j aprovados} PERCEN(NMAX,N,FM,NOT,FREQ, escreva P {Escrita da percentagem dos alunos que podem fazer} {exame especial) O algoritmo final dado por: Aigritmo (Declarao da sub-rotina que verifica quais os alunos) (que podem fazer exame especial subrotina EXAME( NMAX.N.FM.NUM.NOTA.F.NUMEX,NOTEX,NEX) declare NMAX. {lirnite superior das variveis compostas} N, {nmero de alunos da turma) FM, {freqncia mnima) NEX, (nmero de alunos que podem fazer o exame) {especial } (varivel auxiliar) l*-1 NEX - O {nmero de matrcula dos alunos} (nota dos alunos} (freqncia dos alunos } (nmero de matrcula dos alunos) (que podem fazer exame especial } { nota dos alunos que podem fazer) {exame especial } repi se 1 > N Jento interrompa fim se se FUI _ FM e NOTA _ 40 e NOT <60 Je - NEX + 1 NUMEXLNEX] <- NUMjI] NOTEX - NOTA fim se H-I+ 1 fim repita m subrotina {Declarao da sub-rotina que calcula a percentagem de) { alunos aprovados) ibrotina PERCEN(NMAX,N,FM,NOTA,F,PA) declare NMAX, (limite superior da varivel composta) N, {nmero de alunos da turma) FM, {freqncia mnima)

PA, {percentagem de alunos aprovados} NA, {nmero de alunos aprovados) 1, (varivel auxiliar) numrico declare NOTA {nota dos alunos da turma) F {freqncia dos alunos da turma) numrico NA - O I*-l r se 1> N J ento interrompa fim se se NOTAFI) _ 60 FEl] _ FM NEXX 100 P *NMAX, N, FM, NEX, numrico declare NUME 1 :NMAXI, NOTA 1 :NMAXI, F NUMEX :NMAX], NOTEX :NMAX] numrico numrico declare NUM 1 :NMX], NOTA :NMAX], FREQ NUMEX{l:NMAX], NOTEX 1 :NMAX 1 numrico f 5 NEX X 100 PA - _______ N escreva P fim subrotina oo 201 fim repita 1 entoNAf-NA+l firn l1 NA X l0( PA N {Declarao da sub-rotina que classifica em ordem) {crescente a relao dos alunos que podem fazer exame) {especial) ibrotina CLASSIFICA( NMAX,N,NUMNOTA) declare NMAX, (limite superior das variveis} {compostas } (nmero de alunos) {variveis auxiliares } {variveis auxiliares) N, I,J, AUXI,AUX2 numrico declare NUM NOTA :NMAX} numrico J se J > N J ento interrompa llrn AUX1 4- NUM AUX2 NOTA I*-J

ita 1 1 = 1 AUX1 > NUM ento interrompa fim se NUM + 1] NUM NOTA + 1] NOTA fim repita n J1 fim repita fim subrotinp {Declarao da sub-rotina que escreve os resultados} {para cada disciplina) subrotina DISCJPLINA(NMAX,N,FM,NUM,NOTAFREQ) {Declarao dos parmetros e variveis utilizadas) declare NMAX, (limite superior das variveis compostas N, (nmero de alunos da turma} FM, {freqncia mnima) NEX, {nmero de alunos que podem fazer o exame) (especial) 1 {varivel auxiliar} r 1> NEX ento interrompa escreva NUMEX H-I+ 1 fim repita {nmero dc matrcula dos alunos) nota dos alunos) (freqncia dos alunos) (nmero de matricula dos alunos) (que podem fazer exame especial) (nota dos alunos que podem fazer exame} {especial} {Declarao das variveis utilizadas) {freqncia mnima exigida) (nmero de matrcula dos alunos} (nota dos alunos de Geom. Analtica} {nota dos alunos de P. de Computadores} (nota dos alunos de Clculo 1) (freqncia dos alunos de Geom. Anal. } {freqncia dos alunos de P. de Comp.) freqncia dos alunos de Clculo 1 } (limite superior das variveis compostas } (varivel auxiliar} nmero de alunos da turma} m subrotina numrico declare NUML1:NMAXJ, NOTA 1 :NMAXI. FREQ 1 :NMAXI, NUMEX :NMAX]. NOTAEXI1:NMAX1 numrico (nmero de matrcula dos alunos) (nota dos alunos} (Verificao dos alunos que podem fazer exame especial } EXAME(NMAX,N,FM,NUM,NOTA,FREQ,NUMEX,NOTAEX,NEX) (Escrita dos alunos que podem fazer exame especial) CLASSIFICA(NMAX,NEX,NUMEX,NOTAEX) I {Escrita da percentagem dos alunos j aprovados) PERCEN(NMAX,N,FM,NOTA,FREQ,PA) escreva PA {Escrita da percentagem dos alunos que podem fazer) (exame especial) o NUM - AUX1 NOTA - AUX2 o NUM + l1 AUX1 NOTAf 1 + 114- AUX2 NEX X 100

PA 4N escreva PA fim subrotina declare FM MAT NOTAG NOTAP NOTAC FREQG FREQP FREQC :51], numrico declare NMAX, N, numrico NMAX 5l (Leitura da freqncia mnima exigida nas 3 disciplinas) leia FM {Leitura da matrcula, notas e freqncias dos alunos) I leia MAT ,FREQC se MAT <0 J ento interrompa fim se l 1 202 203 O conceito fina! dado atendendo-se ao seguinte critrio: finu N1 {Para a disciplina Geometria Ana! tica:) DISCIPLINA(NMAX.N.FMI 1 ].NUM.NOTAG,FREQG) (Para a disciplina Programao de Computadores) DISCIPLINA(NMAX,N,FM {Para a disciplina Clculo 1:) DISCIPLINA( NMAX,N,FM fim algoritmo

Você também pode gostar