Ana Carolina155 Posted May 15, 2012 at 05:25 PM Report #455816 Posted May 15, 2012 at 05:25 PM Olá tenho o seguindo programa a fazer,e já quebrei a cabeça e não consegui,alguém me ajude!por favor!! O valor de seno(x) pode ser dado pela sequência de Taylon, e o ângulo para se calcular o seno deve ser informado em radiano, e não em graus. Implemente uma função para calcular o valor do seno de x. Note que xk+2 é igual a xk*x2 e (n+2)! = n!*(n+1)*(n+2). Tenho este também que não consegui fazer,fazefunção em pascal que retorne o número em binário,só que entra string e não sei trata-la. Escreva um programa contendo uma função Function binario(n:integer):TipoString; Que retorna um tipo chamado TipoString, declarado como: Type TipoString = string[50]; String contendo o número n na base binária.
Ana Carolina155 Posted May 15, 2012 at 05:27 PM Author Report #455817 Posted May 15, 2012 at 05:27 PM (edited) O meu do seno ta retornando "values out of range"...não da certo!! Program seno; var a: integer; function s (x : real) : real; var y, k : real; var i, f, z, n, t : integer; begin t:= 0; n:= 3; k:= x; y:= x*x*x; f:= 6; x:= x - x*x*x/3*2; for i:= 1 to 100 do begin z:= f*(n+1)*(n+2); f:= z; n:= n + 2; y:= y*(k*k); if (t = 1) then begin x:= x - y/z; t:= 0; end else begin x:= x + y/z; t:= t + 1; end; end; s:= x; end; begin readln (a); writeln (' O valor do seno de a = ', s (a)); end. Edited May 15, 2012 at 07:53 PM by thoga31 GeSHi
thoga31 Posted May 15, 2012 at 08:01 PM Report #455873 Posted May 15, 2012 at 08:01 PM Dicas para o seno: cria uma função à parte para o cálculo dos factoriais. Assim farás, por exemplo, factorial(n) em vez de fors dentro de fors que só vai criar código ilegível. Quanto ao Out Of Range, significa que o tipo de dados não suporta os resultados que estão a dar: substitui Integer por LongInt. Knowledge is free!
thoga31 Posted May 15, 2012 at 08:06 PM Report #455877 Posted May 15, 2012 at 08:06 PM Ah, é verdade, outra coisa, indenta o teu código para ser muito mais legível. Eu não consigo perceber nada do código. E comenta-o, habitua-te a isso, torna-se essencial. Knowledge is free!
nunopicado Posted May 15, 2012 at 09:31 PM Report #455916 Posted May 15, 2012 at 09:31 PM Tenho este também que não consegui fazer,fazefunção em pascal que retorne o número em binário,só que entra string e não sei trata-la. O quê que não sabes? Trabalhar com strings? "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Ana Carolina155 Posted May 15, 2012 at 11:36 PM Author Report #455949 Posted May 15, 2012 at 11:36 PM Isto não sei tratar strings.
nunopicado Posted May 16, 2012 at 07:50 AM Report #455959 Posted May 16, 2012 at 07:50 AM E o professor manda fazer algo que inclui criar tipos novos sem dizer como se trabalha com strings? 😕 Então é assim. Ao declarares uma variável do tipo string, podes guardar nela valores alfanuméricos, texto no fundo. Esses valores têm de estar obrigatoriamente entre pelicas ( ' ). Ex.: program teste; var s:String; begin s:= 'Olá Ana!'; writeln(s); end. Isto iria escrever no ecrã as palavras: Olá Ana! Posto isto, há alguns truques para trabalhar com strings: 1. Para limitar uma string a um tamanho especifico, coloca-se à frente da declaração o nº de caracteres máximo, entre parentesis rectos: var s: string [50]; // aceita no máximo 50 caracteres 2. Se quiseres aceder a um caracter específico da string, só tens de colocar, também entre parentesis rectos, o nº da posição que queres aceder: s:='Olá Ana!'; writeln(s); // Isto irá mostrar no ecrã as palavras: [b]Olá Ana![/b] s[8]:='.' writeln(s); // Isto irá mostrar no ecrã as palavras: [b]Olá Ana.[/b] Estas são as bases das strings. A partir daqui, tens várias funções que te permitem copiar ou apagar partes da string, mas aí já depende especificamente do que quiseres fazer. Como exemplo, deixo-te mais um: s:='Olá Ana!'; writeln(s); // Isto irá mostrar no ecrã as palavras: [b]Olá Ana![/b] r:='Tudo bem ' + Copy(s,5,999); // Isto irá colocar na variável r (String) a junção do valor 'Tudo bem' com uma cópia do valor que estiver em s, a partir da 5ª posição ('A'). // O 999 é a quantidade máxima de caracteres que serão copiados, podia-se neste caso usar qualquer numero acima de 4. writeln(r); // Isto irá mostrar no ecrã as palavras: [b]Tudo bem Ana![/b] "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
passarito Posted May 16, 2012 at 07:51 AM Report #455960 Posted May 16, 2012 at 07:51 AM Tenho este também que não consegui fazer,fazefunção em pascal que retorne o número em binário,só que entra string e não sei trata-la. Penso que o que tu queres é um programa que introduzas um número e o obtenhas o correspondente em binário. Além de eu achar que te devias esforçar por tentar resolver esse problema que nem é tão dificil assim.... o pessoal aqui ajuda-te.... acho que podes encontrar isso na Wiki. xk*x2 @Ana, não quererias escrever xk*x^2?
Ana Carolina155 Posted May 16, 2012 at 03:12 PM Author Report #456103 Posted May 16, 2012 at 03:12 PM (edited) Obrigado pelas dicas nunopicado.É me expressei mal é x^k*x^2,consegui resolver os dois, Valeu pelas dicas!! Edited May 16, 2012 at 03:12 PM by Ana Carolina155
thoga31 Posted May 16, 2012 at 03:38 PM Report #456117 Posted May 16, 2012 at 03:38 PM (edited) Podes ver isto para strings, para completar um pouco mais o teu conhecimento: Códigos úteis sobre strings Edited May 16, 2012 at 03:39 PM by thoga31 Knowledge is free!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now