-
Posts
3.940 -
Cadastrado em
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Simon Viegas postou
-
Tente fazer algo... A proposta que passei não tem mistério. Você vai "ler o número do usuário" (comando leia) e verificar se o valor é um determinado número (estrutura se). Algo como: "Se" número igual a 0, "escreva" 'zero', "se" o número igual a 1, escreva 'um' (para escrever usar o comando escreva ou escreval)... Ex. de estrutura base: Algoritmo "NumeroPorExtenso" Var numero :inteiro Inicio escreval("PROGRAMA QUE ESCREVE UM NUMERO POR EXTENSO") fimAlgoritmo No aguardo.
-
Problema com vetor visualg
Simon Viegas respondeu ao tópico de brunoalv182 em Programação - iniciantes
Olá @brunoalv182, Caso necessário, poste seu código atual para darmos uma analisada. Sobre o código, alguns pontos: Como está definido o uso dessas variáveis? Sugiro utilizar nomenclaturas mais sugestíveis, por exemplo, em relação ao "a1", pelo que vi do uso dela, poderia utilizar algo como "menu", ou "opcao" ou "op" etc. Veja, se as outras estiverem relacionadas as "alternativas do menu", elas não precisam ser declaradas... utilizam-se apenas uma variável, e o "conteúdo" delas que seria "1" ou "2" ou "3" ou "4" (ou outra)... Em relação a "contas"... por quê o primeiro tem "caracter inteiro" ? não tenho certeza, mas acho que para "matrizes" (vetores com 2 ou mais coordenadas) utilizam uma tipo só mesmo... No aguardo. -
Olá @Guilherme Prata Costa, por favor, poste o seu código para tentarmos analisar... e mais ou menos onde acha precisa de ajuda. No aguardo.
-
Olá. 1) Identação base Primeiramente dei uma reidentada, para facilitar a leitura do código: 2) Controlador de índice de vetores Veja, o índice do vetor (array) não tem nenhuma relação com o conteúdo da posição deste vetor. A variável do índice serve para "posicionar", ou seja, acessar determinada "variável" do array (ex.: Olho[3] equivale a posição 3 de vetor Olho). Essa posição sempre será de acordo com o que foi definido lá na var... se você definiu de 1..20, vai precisar passar um valor de 1 a 20! Logo, a variável será numérica!!! (ex.: No primeiro for, usou i, esse i vai de 1 a 20, logo percorrendo o vetor de 1 a 20). Todos os array estão com posições de 1..20, logo todos as variáveis de controle devem ser numéricas. 3) Ordem de leitura No seu código você está lendo "todas as idades", depois "todos os pesos" etc... Creio que seja mais dinâmico ler os dados de pessoa por pessoa, ou seja, para cada loop (volta do laço de repetição) ler a idade, peso, altura etc. No caso, seria um for só! (daí vai precisar só do i para ler os dados) 4) Analise de dados Na minha opinião, poderia fazer assim: Primeiro a parte da leitura, como solicitado: Depois a parte da análise: Ou seja, teria outro laço de repetição (for) para analisar critério a critério... Veja, da mesma forma, dá para fazer a verificação em um laço só. Obs.: dá para fazer as verificações a medida que está lendo, apenas acho mais coerente fazer depois de ler tudo, pois, caso faça ao mesmo tempo que está lendo, o programa nem precisaria de array (ou uma variável para cada pessoa, como você tinha proposto antes), seria só necessário uma variável para cada tipo (reutilizando elas). *** Por enquanto é isso No aguardo.
-
Olá. Ok, como queiras. Algo como: if (Cabelo1='R') and (not (Olhos1='A')) then begin end;
-
Olá @Augusto G rocha, Como tem várias pessoas para cadastrar, seria mais recomendado utilizar vetores (array), em vez de várias variáveis em sequência. Com os arrays você poderá usar laços de repetição para percorrer as posições. Sugiro que corrija, ou refaça, o código utilizando eles. A partir daí verificando os outros pontos. Obs.: Inicialmente você não precisa utilizar o cadastro de 20 pessoas. Poderia usar, por exemplo, apenas 3!. No aguardo.
-
Olá. Só um detalhe: As faixas de notas não estão fechadas... tem nota que não entraria.. por ex.: 8.95. Poderia usar assim: Se (media >= 8) e (media < 9) então Daí ajustaria as outras condições também...
-
Olá @Kepler Piaggi, Sobre: Nesse caso terá problemas, pois "a maior média inicial deverá ser menor que a menor média possível", pois caso contrário pode ocorrer de nunca ser "maior", daí ninguém vai ter a maior média! Ex.: João tem média 0.5 e Maria média 0.! Ou insere um valor menor que o mínimo, como o "-1" já citado (no VisuAlg vai ficar com dois "-", pois um "-" será do comando "<-"), ou a primeira média seria sempre a maior média, até que venha (ou não) ser atualizada por outra... ou poderia fazer de outra forma viável (que conseguir imaginar e implantar...) Complementando: 1) Nomenclatura de variáveis Uma recomendação seria utilizar nomes mais sugestíveis para o contexto da variável. Ex.: - A media2 poderia ser algo como media_top (seguindo o raciocínio do nome do aluno) ou algo como maiorMedia. Acho que media2 fica parecendo que um mesmo aluno tem duas médias... - A variável cont2 não está sendo usada. (eu acho) - Em vez de sala, poderia ser algo como qtdAlunos. Por ai vai... 2) Tratamento da faixa de notas Inicialmente você pode subentender que sempre o usuário vai digitar notas válidas, como de "0 a 10"... Sendo assim, e corrigindo o que foi citado lá em cima, o programa deve funcionar bem. Mas caso queira, posteriormente, poderia implementar uma lógica para verificar se o número informado está entre a faixa aceitável ou não. Caso não esteja, poderia pedir para inserir novamente. (essa questão pode ser feita para depois... como uma "melhoria") 3) Identação de código Essa é uma questão que sempre tento levantar. No seu caso, o comando enquanto deveria está na mesma coluna do comando anterior, ou seja, o que vai ser identado é o que está "dentro" do enquanto. O mesmo princípio vale para o se. Eles comandos que estão na mesma sequência do comando anterior, o que está dentro do se é que é identado, entende? Imagine as pastas do computador. Cada comando seria uma pasta... (ex.: não tem porque a pasta Windows está uma coluna pra frente da pasta Usuários. O que estaria identado, é a pasta System32, que está dentro da Windows). Dando uma identação de 3 espaços, a identação poderia ficar assim: algoritmo "melhoralunodasala" var aluno, aluno_top: caractere nota, nota2, cont2, media, media2: real sala, cont: inteiro Inicio cont <- 1 media2 <- 1 Escreval ("----------------------------------------------------------") Escreval (" Escola Santa Nota ") Escreval ("----------------------------------------------------------") Escreval ("Quantos alunos tem na sala? ") Leia (sala) Enquanto (cont <= sala) faca Escreval ("--------------------------------------------") Escreval (" Aluno", cont, " ") Escreval ("Qual o nome do aluno? ") Escreva ("R: ") Leia (aluno) Escreval ("Qual a primeira nota de ", aluno, "?") Leia (nota) Escreval ("Qual a segunda nota de ", aluno, "?") Leia (nota2) media <- (nota + nota2) / 2) Escreval ("A média do ", aluno, " foi de ", media) cont <- cont + 1 Se (media > media2) então media2 <- media aluno_top <- aluno FimSe //obs.: esse comando poderia ficar alinhado com a linha acima, depende do padrão a seguir FimEnquanto //esse comando poderia ficar alinhado com a linha acima, depende do padrão a seguir Escreval ("--------------------------------------------") Escreval ("O melhor aproveitamento foi do aluno ", aluno_top, " com a media ", media2) FimAlgoritmo *** Por ai vai No aguardo.
-
Como repetir um programa em pascal dependendo da resposta.
Simon Viegas respondeu ao tópico de Leonel Martins em Programação - outros
Olá @Leonel Martins, o código ficou muito bom! Alguns comentários: 1) Identação de código Deixe seu código sem bem identado. Uma boa dica é só usar espaços, e não usar tabulação (TAB). Abaixo reindentei, veja a diferença: Program AIB_p1; //Autor: Leonel Martins.... uses CRT; //biblioteca necessário para alguns compiladores reconhecerem o ReadKey, TextColor, as constantes de cores (Black, Blue etc), ClrScr etc var //só precisa declarar o var uma vez x: integer; y: string; BEGIN repeat TextBackGround(LightGray); ClrScr; TextColor(LightRed); writeln(' ----------------------------------------------------------------'); TextColor(Black); writeln(' Bem Vindo ao programa que o vai ajudar a descubrir se um número'); writeln(' é par ou impar de forma rápida e simples '); TextColor(Lightred); writeln(' ----------------------------------------------------------------'); writeln; TextColor(Blue); Delay(400); writeln('Para começar, intruduza um valor:') ; readln(x); writeln; if x mod 2=0 then //<-- como só tem um comando, o () externos são facultativos writeln('O número ',x,' é par!') else writeln('O número ',x,' é impar!'); writeln; Delay(300); repeat writeln('Deseja tentar um novo valor? Pressione S-(sim) ou N-(não), seguido de Enter'); readln(y); until (y='s') or (y='n'); until y='n'; //<-- como só tem um comando, os () externos são facultativos writeln; writeln('Para fechar o prompt, pressionar qualquer tecla'); writeln('Autor: Leonel Martins - 2016'); ReadKey; END. ...eu inserir alguns comentários para demonstrar outros conceitos... 2) Leitura sem pressionar ENTER É possível ler a resposta do usuário sem precisar que pressione o ENTER, ex.: repeat writeln('Deseja tentar um novo valor? Pressione S-(sim) ou N-(não), seguido de Enter'); y:=ReadKey; //ler tecla pressionada writeln(y); //exibe a tecla pressionada (com o ReadKey, a tecla não aparece) until (y='s') or (y='n'); 3) Diferença entre minúsculo e MAIÚSCULO Talvez você não tenha percebido, mas o programa só vai aceitar a resposta se for um "s" ou "n" minúsculo... pois o a comparação é Case-sensitive ("sensível ao caso"). Para aceitar um "S" ou "N", poderia inserir essas alternativas na condição: Ex.: until (y='s') or (y='S') or (y='n') or (y='N'); ou poderia usar o UpCase(), que tem a função de "retornar o correspondente em maiúsculo da valor repassado". Tem várias forma de usar... você poderia já transformar o valor do ReadKey após a leitura... ex.: y:=UpCase(ReadKey); Poria converter o y depois: y:=ReadKey; y:=UpCase(y); Poderia fazer na comparação lá no until... until (UpCase(y)='S') or (UpCase(y)='N'); 4) Nomenclatura de variáveis É aconselhável utilizar nomes mais sugestivos... "x" e "y" não remetem as suas respectivas funções. Poderia usar "numero" e "resp" (ou resposta) por exemplo... *** Por ai vai. O interessante é que esses pequenos conceitos podem ser reutilizados em outros algoritmos, da mesma forma que você "aproveitou" sobre a parte cores... PS: dentre esses pontos, para mim o mais importe está na parte da identação, ela é a base de tudo!!! Mantenha seu código identado e verás como tudo ficará mais simples... -
Como repetir um programa em pascal dependendo da resposta.
Simon Viegas respondeu ao tópico de Leonel Martins em Programação - outros
@Leonel Martins, caso deseje, poste o seu código para reavaliarmos e poder servi de base para outros usuário... e a depender poderíamos revisar e passar dicas para aprimorá-lo. No aguardo. -
Erro no comando repeat /until
Simon Viegas respondeu ao tópico de Augusto G rocha em Programação - outros
Que bom que solucionou... @Augusto G rocha, por favor, dê uma olhada lá no tópico e dê uma alimentada no tema para atualizarmos as informações. -
Basicamente você estaria com dúvida em tudo Qual a sua dúvida? tente ser mais específico... Tente fazer algo e poste aqui onde está com dúvida. Não precisa fazer tudo de uma vez. Poderia fazer por exemplo sem o laço de repetição... aos poucos vai inserindo os detalhes. No aguardo.
-
Erro no comando repeat /until
Simon Viegas respondeu ao tópico de Augusto G rocha em Programação - outros
Olá. Tente trocar todos os read por readln. Mais sobre aqui: -
Como repetir um programa em pascal dependendo da resposta.
Simon Viegas respondeu ao tópico de Leonel Martins em Programação - outros
Olá. Alguns pontos: 1) Identação de código Sempre mantenha o seu código bem identado. A dica é evitar o uso de TAB (tabulação). Prefira somente usar espaços por enquanto. Abaixo um exemplo do seu código identado: Program AIB_p1; //Autor: Leonel Martins.... uses CRT; //biblioteca necessário para alguns compiladores (como o Free Pascal) reconhecer o Delay, ReadKey etc var x: integer; y: string; BEGIN repeat writeln('Para começar, intruduza um valor:') ; readln(x); writeln; if ((x mod 2)=0) then writeln('O número ',x,' é par!') else writeln('O número ',x,' é impar!') ; writeln; Delay(300); writeln('Deseja tentar um novo valor? Pressione S-(sim) ou N-(não), seguido de Enter'); readln(y); until y=('n'); writeln; writeln ('Para fechar o prompt, pressionar qualquer tecla'); writeln ('Autor: Leonel Martins - 2016'); ReadKey; END. 2) Nomenclatura de variáveis Use nomes mais sugestivos, por exemplo: no lugar do x, usar numero. No lugar do y, usar resp ou resposta ou continuar. *** No aguardo. -
Algoritmo para cálculo de potência de ar-condicionado
Simon Viegas respondeu ao tópico de debora ribeiro em Programação - iniciantes
Não sei qual a linguagem usada no site... mas segue abaixo uma base: algoritmo declare qtdComodos numerico //quantidade de comodos da casa potenciaAC numerico //potencia do Ar-Condicionado em BTUs tamComodo numerico //tamanho do comodo em m^2 qtdPessoas numerico //quantidade de pessoas no comodo qtdAE numerico //quantidade de aparelhos eletrônicos no comodo contador numerico //usado no laço de repetição escreva "" escreva "Calculadora de Ar-condiciona v.0.001" escreva "" escreva "Quantos cômodos terão ar-condicionado?" leia qtdComodos para contador de 1 ate qtdComodos passo 1 escreva "Comodo ",contador,":" escreva "Qual o tamanho do cômodo? leia tamComodo escreva "Quantas pessoas?" leia qtdPessoas proximo escreva "Obrigado por meu programa" fim_algoritmo. Tente dar continuidade... precisa ver como faz o laço de repetição... aqui o "para" não está funcionando, mas acho que seria algo do tipo. No aguardo. -
Algoritmo para cálculo de potência de ar-condicionado
Simon Viegas respondeu ao tópico de debora ribeiro em Programação - iniciantes
Olá. Lá no arquivo .docx, tem: Qual a ferramenta que estão utilizando? -
Como repetir um programa em pascal dependendo da resposta.
Simon Viegas respondeu ao tópico de Leonel Martins em Programação - outros
Na parte de ler o a resposta, você deixa dentro de um laço de repetição (while ou repeat), ou seja, enquanto o que for digitado não for o que você quer, o programa deverá ler novamente a resposta. Algo como: repita escreva('Deseja tentar novamente? S-(sim) N-(não): '); leia(resp) até ((resp='s') ou (resp='n')); //a repitação termina quando a expressão for verdadeira Caso o usuário digite 's' ou 'n' a expressão será "verdadeira", e a repetição terminará. Caso informe outra letra diferente, a expressão vai dar "falsa" e vai ler novamente. Ou seja, a "resp" sempre vai ficar com "s" ou com "n", que é o que você deseja. Em Pascal seria algo assim: repeat write ('Deseja tentar novamente? S-(sim) N-(não): '); readln(resp); until (resp='s') or (resp='n'); Por favor, após, poste o seu código aqui para analisarmos. -
Como repetir um programa em pascal dependendo da resposta.
Simon Viegas respondeu ao tópico de Leonel Martins em Programação - outros
Olá. Você poderia criar um laço de repetição para ficar lendo a resposta até que ele informa o "s" ou "n"... -
Olá a todos. Complementando... program p6; uses CRT; procedure auxiliar (var bissexto:boolean; ano:integer); begin if (ano mod 400=0) then bissexto:=true {if (ano mod 4=0) and (ano mod 100 <> 0) then} //sem o else, o if acima não tem utilidade else if (ano mod 4=0) and (ano mod 100 <> 0) then bissexto:=true else bissexto:=false; end; var mes, aux, anoX :integer; biss :boolean; begin writeln('Entre com o ano: '); readln(anoX); auxiliar(biss,anoX); writeln('Entre com o mes: '); readln(mes); if (mes) > 12 then writeln('Mes invalido') {if (mes) <= 12 then} //é o oposto da condição acima. Não precisa verificar else {begin} //não precisa if (biss=false) and (mes = 02) then aux:=28 {end} else {aux:=0;} //não precisa, aux sempre vai receber um dos valores (se fosse para inicializar ela, teria que ser antes do bissesto, já que lá ainda tb n foi iniciado {begin} //[1]esse begin não estava vinculado a nada (quanto tinha o acho:=0) if (mes = 01) then aux:= 31 else if (mes = 02) then aux:= 29 else if (mes = 03) then aux:= 31 else if (mes = 04) then aux:= 30 else if (mes = 05) then aux:= 31 else if (mes = 06) then aux:= 30 else if (mes = 07) then aux:= 31 else if (mes = 08) then aux:= 31 else if (mes = 09) then aux:= 30 else if (mes = 10) then aux:= 31 else if (mes = 11) then aux:= 30 else if (mes = 12) then aux:= 31; {end;} //[1] writeln('O mes ',mes,' do ano de ',anoX,' possui ',aux,' dias. '); readkey; end. Código resumido e com pequenos ajustes Veja, os begin/end só são necessários quando temos mais de uma instrução vinculada ao comando (if/else é considerado como uma instrução só, tanto que cada um desses if/else estão dentro do outro, e nem por isso precisou colocar um begin/end em cada um). Abaixo, inserir propositalmente para demonstrar mais ou menos com funcionariam... creio que pode ser útil para dar uma revisada. Veja que esses begin/end extras podem ser removidos sem nenhum prejuízo ao algoritmo... lembrando que devem ser sempre apagados o begin com o seu end correspondente... (deixei um comentário indicado para cada um). O do "else if mes 02" é o que parece ser mais estranho, mas é assim mesmo. "Cada else externo tem os outros elses dentro deles... como uma cadeia... veja outro exemplo abaixo: Uma maneira mais organizada, seria usar um case. Pois os "if são simples e mutuamente exclusivos entre si", ou seja, não pode ser mais de uma coisa a mesmo tempo (só um ou nenhum if é verdadeiro) Por ai vai...
-
Trabalho em pascal dando erro
Simon Viegas respondeu ao tópico de bielmaster48 em Programação - outros
Olá. Faltou o begin do while. Abaixo seu código reidentado. program ELEICAO; uses CRT; var nulo,CandA,CandB,CandC,CandD,CandE,CandF,CandG,voto,branco,total,pv : Integer; begin nulo:= 0; CandA:= 0; CandB:= 0; CandC:= 0; CandD:= 0; CandE:= 0; CandF:= 0; CandG:= 0; branco:= 0; CLRSCR; while voto <>0 do begin writeln('ELEICAO 2016'); writeln('---------------------------------------'); writeln ('15 - Cícero Almeida (PMDB)'); writeln ('33 - Fernando do Village (PMN)'); writeln ('50 - Gustavo Pessoa (PSOL) '); writeln ('40 - JHC (PSB) '); writeln ('13 - Paulão (PT)'); writeln ('36 - Paulo Memória (PTC)'); writeln ('45 - Rui Palmeira (PSDB)'); writeln ('1 – Nulo '); writeln ('2 – Branco '); writeln ('0 – Encerra a votação Candidato'); writeln('---------------------------------------'); writeln; writeln('Insira o Voto: '); readln(voto); writeln('===================================='); case (voto) of 15: CandA:= CandA+1; 33: CandB:= CandB+1; 50: CandC:= CandC+1; 40: CandD:= CandD+1; 13: CandE:= CandE+1; 36: CandF:= CandF+1; 45: CandG:= CandG+1; 1: nulo := nulo+1; 2:branco:=branco+1; end; {begin} //begin de que[1] CLRSCR; writeln('Clasificação dos Candidatos:'); writeln; total:= (CandA+CandB+CandC+CandD+CandE+CandF+CandG); pv:= (CandA+CandB+CandC+CandD+CandE+CandF+CandG+nulo+branco); writeln('Total de votos válidos:',total); writeln('Total de pessoas votantes:',pv); writeln('Total de votos do Cícero Almeida (PMDB): ',CandA); writeln('Total de votos do Fernando do Village (PMN) ',CandB); writeln('Total de votos do Gustavo Pessoa (PSOL) ',CandC); writeln('Total de votos do JHC (PSB): ',CandD); writeln('Total de votos do Paulão (PT): ',CandE); writeln('Total de votos do Paulo Memoria (PTC): ',CandF); writeln('Total de votos do Rui Palmeira (PSDB):',CandG); writeln('Votos nulos ',nulo); writeln('Votos brancos',branco); if (CandA+CandB+CandC+CandD+CandE+CandF+CandG+nulo+branco)=0 then begin writeln(' Não houve nenhum votante. Eleições Canceladas. ') end; if (CandA+CandB+CandC+CandD+CandE+CandF+CandG)=0 then begin writeln('Novas eleições serão convocadas - eleição inválida') end; readkey; {end;} [1] {begin} //begin de que? [2] CLRSCR; if (CandA > CandB) and (CandA > CandC) and (CandA > CandD) and (CandA > CandE) and (CandA > CandF) and (CandA > CandG) then Writeln('O Vencedor é o Candidato Cícero Almeida,com ',CandA, ' Votos.') else if (CandB > CandC) and (CandB > CandD) and (CandB > CandE) and (CandB > CandA) and (CandB > CandF) and (CandB > CandG) then Writeln('O Vencedor é o Candidato Fernando do Village, com ',CandB, ' Votos.') else if (CandC > CandD) and (CandC > CandE) and (CandC > CandA) and (CandC > CandB) and (CandC > CandF) and (CandC > CandG) then Writeln('O Vencedor é o Candidato Gustavo Pessoa, com ',CandC, ' Votos.') else if (CandD > CandE) and (CandD > CandA) and (CandD > CandB) and (CandD > CandC) and (CandD > CandF) and (CandD > CandG) then Writeln('O Vencedor é o Candidato JHC, com ',CandD, ' Votos.') else if (CandE > CandA) and (CandE > CandB) and (CandE > CandC) and (CandE > CandD) and (CandE > CandF) and (CandE > CandG) then Writeln('O Vencedor é o Candidato Paulão, com ',CandE, ' Votos.') else if (CandF > CandA) and (CandF > CandB) and (CandF > CandC) and (CandF > CandD) and (CandF > CandE) and (CandF > CandG) then Writeln('O Vencedor é o Candidato Paulo Memoria , com ',CandF, ' Votos.') else if (CandG > CandA) and (CandG > CandB) and (CandG > CandC) and (CandG > CandD) and (CandG > CandE) and (CandG > CandF) then Writeln('O Vencedor é o Candidato Rui Palmeira , com ',CandG, ' Votos.') else Writeln('..:: EMPATE ::..'); writeln('Havera segundo turno'); readkey; {end;} [2] end; //begin while END. -
Algoritmo para cálculo de potência de ar-condicionado
Simon Viegas respondeu ao tópico de debora ribeiro em Programação - iniciantes
Olá @debora ribeiro, Seria em VisuaAlg? Tente sempre fazer algo... e postar o que você conseguiu fazer... então, abaixo fiz uma base... Vá ajustando ao seu padrão, inserindo ou removendo variáveis e dando continuidade à lógica. Algoritmo "CalculoDePotenciaDeArcondicionado" // Disciplina : [Linguagem e Lógica de Programação] // Professor : xxxxxxxxxxxx // Descrição : Programa que calcula a potência recomendada para um ar- //condicionado a ser instalado em comodos de uma residência. // Autor(a) : Débora Ribeiro // Data atual : 21/09/2016 Var qtdComodos :inteiro //quantidade de comodos da casa potenciaAC :real //potencia do Ar-Condicionado em BTUs tamComodo :real //tamanho do comodo em m^2 qtdPessoas :inteiro //quantidade de pessoas no comodo qtdAE :inteiro //quantidade de aparelhos eletrônicos no comodo Inicio // Seção de Comandos, procedimento, funções, operadores, etc... escrevaL() escrevaL("Calculadora de Ar-condiciona v.0.001") escrevaL() escrevaL() escreva("Quantidade de comodos :") leia(qtdComodos) escreva("Tamanho do comodo (m2):") leia(tamComodo) escrevaL() escreva("Obrigado por meu programa") pausa FimAlgoritmo Como são vários cômodos, você precisará usar laço de repetição... para efetuar os cálculos para cada um deles. Inicialmente sugiro fazer apenas de um cômodo mesmo. Depois insere o laço e ajusta alguns detalhes inerentes. PS: - Abaixo um pouco sobre a linguagem, para dá uma revisada (se for o caso do VisuAlg) http://www.eletrica.ufpr.br/~rogerio/visualg/Help/linguagem.htm - Abaixo uma referência para os comandos: http://www.eletrica.ufpr.br/~rogerio/visualg/Help/refer.htm Sugiro dá uma lida neles... pelo menos nos comandos já conhecidos, e após lê o restante para pegar experiência (se for o caso do VisuAlg) No aguardo. -
Iniciantes - cálculo de áreas de figuras geométricas
Simon Viegas respondeu ao tópico de debora ribeiro em Programação - iniciantes
Olá @debora ribeiro, Por favor, poste seu código aqui para analisarmos e também para eventualmente poder servi de base para outros usuários. No aguardo. -
Olá @Igorc.. Não sei dizer se dá para limitar a variável em si no VisuAlg. No Pascal, por exemplo, dá para fazer isso na declaração da variável, estipulando um tamanho de 1 a 255 se não me engano... (se não especificar fica com 255). No Java, sei também que também tem um recurso de "formatação", ou seja, que faz só aceitar o texto como desejado, como uma "mascara".. ex.: xxx.xxx.xxx-xx. Então, de um modo geral, o VisuAlg é mais limitado, mas dá para usar outros recursos disponíveis e efetuar as verificações manualmente. Dê uma olhada nesse material: http://www.apoioinformatica.inf.br/produtos/item/30-as-funcoes-do-visualg-versao-2-0 Tem por exemplo o comando Compr() que pode ser útil. Compr (c : caracter) : Retorna um inteiro contendo o comprimento (quantidade de caracteres) da expressão. Daí, poderia usar um se para verificar se está com o tamanho desejado... Tem outros comandos que se usar direitinho dá para fazer uma verificação completa... ou seja, verificar "caractere por caractere" e confirmar se está no formato desejado... Resumindo: - Com o Compr() dá para verificar o comprimento, como se tem 14 caracteres (ou 11 se for considerado só os números) - Com outras funções, dá para analisar posição por posição e confirmar ou não se está no formato de CPF (número onde deve ter número, ponto onde deve ter ponto... etc). - Se quiser ir mais longe, Inclusive, dá para verificar se o CPF é válido ou não (o CPF é baseado em um fórmula, onde os 2 últimos dígitos são chamados de "verificadores", e são gerados a partir dos 9 primeiros.. se o número cadastrado não bater, é considerado "CPF inválido". Na internet acha fácil a fórmula.) No aguardo.
-
Olá @Igorc.. Bacana! para mim o programa OK! Para complementar, poderia exibir de alguma forma o CPF, pois senão a leitura dessa informação perderia o sentido.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais