New pages

From Applied Science
New pages
Hide registered users | Hide bots | Show redirects
  • 20:10, 23 January 2025Exercícios comentados (hist | edit) ‎[4,461 bytes]Wikiadmin (talk | contribs) (Created page with "* '''Os dois algoritmos abaixo tentam calculuar <math>x^n</math>. Ambos estão errados. Explique o erro de cada um:''' {| class="wikitable" |style="width: 22em;" |<source lang="c">for (i = 1; i <= n; i++) x = x * i;</source>|| Está multiplicando por um contador que aumenta a cada vez. Para x = 4, temos 4 * 1, depois 4 * 2, depois 8 * 3, ... |- |style="width: 22em;"|<source lang="c">for (i = 0; i < n; i++) x = x * x;</source> || Está calculando o quadrado do número, d...") Tag: wikieditor
  • 17:07, 23 January 2025Alocação dinâmica de memória (hist | edit) ‎[3,727 bytes]Wikiadmin (talk | contribs) (Created page with "Funções e variáveis ocupam um espaço na memória do computador quando são declaradas. No nível introdutório não vemos como essa memória é gerenciada, isso é algo que o sistema operacional faz sozinho. Há classes de algoritmos que lidam com gerenciamento de memória, mas não os estudamos numa introdução. '''Há muitas questões naturais que surgem a respeito de como o sistema operacional gerencia a memória:''' ''"Onde na memória as variáveis são guarda...") Tag: wikieditor
  • 04:18, 23 January 2025Números aleatórios (hist | edit) ‎[3,014 bytes]Wikiadmin (talk | contribs) (Created page with "Para este nível introdutório os números aleatórios não são estudados. Eles aparecem quando queremos testar programas com entradas aleatórias. Existe uma teoria matemática por trás dos algoritmos que geram números aleatórios, mas isso não é discutido numa introdução. Como aprendemos algoritmos determinísticos em tese não há como gerar números verdadeiramente aleatórios se existe um algoritmo que obedece a uma fórmula ou regra. O que podemos fazer é...") Tag: wikieditor
  • 03:10, 23 January 2025Caracteres e cadeias de caracteres (hist | edit) ‎[4,488 bytes]Wikiadmin (talk | contribs) (Created page with "É uma prática comum ensinar a utilizar caracteres depois de aprender a operar com variáveis numéricas, isso porque um caractere no computador é representado na forma de um código numérico. Isso é algo que costuma ser passado logo no início da disciplina, computadores não entendem palavras e não são capazes de interpretar nada, apenas executam operações lógicas elementares. Letras, símbolos, até os próprios números tem uma representação binária. Os...") Tag: wikieditor
  • 03:00, 23 January 2025Práticas de programação (hist | edit) ‎[6,177 bytes]Wikiadmin (talk | contribs) (Created page with "Algumas recomendações e pequenas técnicas de programação são empregadas na introdução. São detalhes pequenos e que não determinam uma reprovação ou aprovação, mas são importantes para o aprendizado. <Center>'''Comentários'''</center> * Todos os professores recomendam o uso de comentários, tanto porque isso conta na avaliação dos exercícios programa, quanto porque isso torna o código fonte acessível para outras pessoas ou mesmo você mesmo depois d...") Tag: wikieditor
  • 23:52, 22 January 2025Busca e ordenação (hist | edit) ‎[13,159 bytes]Wikiadmin (talk | contribs) (Created page with "Na introdução são estudados os algoritmos mais elementares de busca e ordenação. São os menos eficientes, mas são mais simples de entender. Os mais rápidos dependem de conhecimentos mais avançados que não fazem parte de uma introdução. Há diversas questões de probabilidade e combinatória que envolvem tais algoritmos, mas isso não é estudado numa introdução. O modo usual de ensino desses algoritmos é mostrando uma sequência de valores e realizando um...") Tag: wikieditor
  • 20:43, 22 January 2025Introdução aos ponteiros (hist | edit) ‎[10,067 bytes]Wikiadmin (talk | contribs) (Created page with "Nos exercícios e exemplos mais simples envolvendo estruturas de seleção, laços de repetição, vetores, matrizes e funções. Um ponteiro não era necessário para a resolução do problema. Em alguns momentos um ponteiro apareceu como no caso da função scanf(), mas os detalhes do seu funcionamento estavam omitidos para fins de simplificação. É possível uma função ter mais de um resultado e devolvê-los? Mais de um resultado sim, mas devolver mais de um resul...") Tag: wikieditor
  • 19:08, 22 January 2025Funções, struct e ponteiros (hist | edit) ‎[2,917 bytes]Wikiadmin (talk | contribs) (Created page with "'''Ponteiros''' para '''struct''' são um modo prático de acessar membros de uma struct. O conceito de ponteiros para struct é o mesmo que ponteiro para uma variável '''int''' ou '''float''' por exemplo. Primeiro declaramos uma variável e um ponteiro para ela, depois fazemos o ponteiro apontar para o endereço de memória daquela variável. A vantagem de um ponteiro para uma struct é que uma função pode receber apenas um ponteiro para um membro da struct, sem prec...") Tag: wikieditor
  • 03:07, 22 January 2025Funções que devolvem um struct (hist | edit) ‎[1,379 bytes]Wikiadmin (talk | contribs) (Created page with "* '''Função que devolve ambas as raízes de uma equação polinomial de segundo grau:''' <source lang="c"> →‎Struct para guardar dois valores: struct raizes { float x1, x2; }; →‎Função que recebe os coeficientes a, b e c e devolve as raízes do polinômio de segundo grau (não inclui o caso do delta ser negativo): struct raizes Bhaskara (int a, int b, int c) { struct raizes x; float delta; delta = b*b - 4*a*c; x.x1 = (-b + sqrt(delta))/(...") Tag: wikieditor
  • 01:56, 22 January 2025Introdução às funções recursivas (hist | edit) ‎[9,112 bytes]Wikiadmin (talk | contribs) (Created page with "Na introdução às funções você viu que, em computação, a definição de uma função pega emprestada a definição matemática. Também viu que, assim como na matemática, uma função pode chamar outra função. Como você deve ter imaginado, uma função pode chamar a si mesma, é quando tratamos da chamada recursividade. A questão do desempenho de algoritmos recursivos v.s. algoritmos não recursivos não é estudada na introdução, isso é visto em disciplin...") Tag: wikieditor
  • 20:14, 21 January 2025Funções, vetores e matrizes (hist | edit) ‎[4,016 bytes]Wikiadmin (talk | contribs) (Created page with "Depois de aprender a utilizar funções, vetores e matrizes, é hora de aprender a utilizar matrizes e vetores como parâmetros de funções. Uma diferença que ocorre aqui diz respeito ao seguinte: considere que vetores ou matrizes não guardam um valor, mas um conjunto. Sendo assim, quando usados com funções, não se passam todos os valores do conjunto de uma vez. Apenas uma referência ao conjunto como um todo, o nome do vetor. Da mesma forma, a função não devolv...") Tag: wikieditor
  • 01:36, 21 January 2025Introdução às funções (hist | edit) ‎[8,378 bytes]Wikiadmin (talk | contribs) (Created page with "Não tem muito como fugir, mas função num programa é análoga a função na matemática. No ensino médio, em algum momento aprendemos que f(x) = x<sup>2</sup> é uma função que, para cada x, corresponde um x<sup>2</sup>. Você também deve se lembrar que uma função só é uma função se para cada x, há apenas um y correspondente. Da definição matemática: função pode ter argumentos diferentes e devolver o mesmo resultado (exemplo, uma função constante). M...") Tag: wikieditor
  • 00:21, 21 January 2025Tipo de dado Struct (hist | edit) ‎[5,543 bytes]Wikiadmin (talk | contribs) (Created page with "Há muitos casos em que várias variáveis são correlacionadas, com algumas guardando valores que são dados que pertencem a um mesmo objeto ou entidade. Seria desejável uma maneira de guardar todas essas informações num ''"pacote"'', sem precisar de uma variável para cada dado e mantendo a relação entre elas na base de uma convenção de nomes. Felizmente temos as '''structs''' que permitem juntar muitos dados num único ''"pacote"''. Na sua forma mais simples,...") Tag: wikieditor
  • 22:17, 20 January 2025Vetores e matrizes (hist | edit) ‎[4,894 bytes]Wikiadmin (talk | contribs) (Created page with "''Em inglês, vetor é array. A tradução não é vector. Em C uma matriz é uma matriz para o usuário e para o programador que não está lidando com aritmética de ponteiros, mas quando se lida com a aritmética de ponteiros, uma matriz passa a ser um vetor de vetor ou "array of array" em inglês.'' Na disciplina de introdução você inicialmente aprende pra que serve vetor e como usar um. A parte mais matemática do assunto, teoremas matemáticos e propriedades es...") Tag: wikieditor
  • 22:00, 20 January 2025Laços de repetição (hist | edit) ‎[9,713 bytes]Wikiadmin (talk | contribs) (Created page with "''"Computadores nunca ficam cansados e nunca reclamam"'' - Gracinha que o meu professor fazia nas aulas Inicialmente, quando você aprende a utilizar laços de repetição, você ignora o desempenho do seu algoritmo. A questão do desempenho só é estudada mais a fundo em disciplinas mais avançadas, específicas para estudar algoritmos mais complicados como algoritmos de busca ou algoritmos de ordenação. Mas já é possível pensar na questão do desempenho da segui...") Tag: wikieditor
  • 20:43, 20 January 2025Seleção caso (hist | edit) ‎[1,896 bytes]Wikiadmin (talk | contribs) (Created page with "* '''Estruturas de seleção com SWITCH e CASE:''' <source lang="c"> int escolha; switch (escolha) { case 1: printf("Voce escolheu 1"); break; case 2: printf("Voce escolheu 2"); break; case 3: printf("Voce escolheu 3"); break; default: printf("Voce escolheu %d (nenhuma das anteriores)", escolha); } </source> '''Diferença entre switch case para if else.''' Não há diferenças quanto ao comportamento do programa. O que muda é a sintaxe e o dese...") Tag: wikieditor
  • 19:43, 20 January 2025Operador condicional (hist | edit) ‎[3,893 bytes]Wikiadmin (talk | contribs) (Antes eu disse que era mais fácil ter o operador condicional do que dois comandos, if e else. Pode ser um equívoco porque na prática você troca duas palavras chave por dois caracteres. Então podia ser um erro falar em um comando contra dois comandos.) Tag: wikieditor
  • 18:35, 20 January 2025Se senão (hist | edit) ‎[3,132 bytes]Wikiadmin (talk | contribs) (Created page with "* '''Um algoritmo que testa se um número é par ou ímpar:''' <source lang="c"> int a; if (a % 2 == 0) printf("O numero %d eh par", a); else printf("O numero %d eh impar", a); </source> Bastante simples, apenas a parte de entrada de um valor pelo usuário foi omitida. É bastante intuitiva a noção de decisão em exemplos como este. * '''Uma variante do algoritmo acima mas com operadores AND e OR e mais ELSE IF:''' <source lang="c"> int a, b, c; if (a % 2...") Tag: wikieditor
  • 02:26, 20 January 2025Estruturas de seleção (hist | edit) ‎[1,362 bytes]Wikiadmin (talk | contribs) (Created page with "Uma das primeiras coisas que você aprende é como fazer o computador receber um valor, processar e devolver pra você alguma coisa. Aí entra o conceito do controle de fluxo, você escreve alguma coisa que controla as decisões (decisões que você toma, não o computador). O tipo mais simples de controle de fluxo é IF ... ELSE. '''A lógica básica é:''' faça isso se aquilo é verdadeiro, senão faça outra coisa. Por um lado você pode decidir que um caso é o qu...") Tag: wikieditor
  • 01:45, 20 January 2025Simule algoritmo no papel (hist | edit) ‎[6,261 bytes]Wikiadmin (talk | contribs) (Created page with "Na disciplina de introdução à computação o professor pode escrever muito no quadro negro e você muito no papel. O computador só é usado quando você tem que escrever programas, em casa, para nota chamados de exercícios-programa. A menos que a carga horária em alguma universidade também inclua prática em laboratório. As provas também não são feitas num computador, mas à moda antiga, com papel e lápis. Nas provas não são exigidos programas complicados,...") Tag: wikieditor
  • 01:38, 16 January 2025Introdução ao C (hist | edit) ‎[22,142 bytes]Wikiadmin (talk | contribs) (Created page with "Como a disciplina é introdutória, os algoritmos não utilizam recursos mais avançados da linguagem C. Muita coisa não é vista neste curso, apenas o mais elementar para se entender a execução de um programa. Como alguns sinais são bastante similares à matemática e até ao idioma escrito, basta ler com atenção um código para entender a ordem das operações. <center>'''Um pequeno resumo da linguagem C'''</center> * '''Palavras chave.''' São palavras reserva...") Tag: wikieditor
  • 18:15, 15 January 2025Pseudocódigo (hist | edit) ‎[5,401 bytes]Wikiadmin (talk | contribs) (Created page with "A escrita de programas em pseudocódigo tem dois objetivos no curso: primeiro eliminar totalmente a sintaxe e os detalhes técnicos da linguagem. Segundo, se concentrar na lógica e na ordem das operações dos algoritmos. Quem já escreveu programas antes não terá maiores dificuldades com isso, mas quem nunca escreveu um programa antes e não tem nenhuma noção de como as operações são processadas num computador, terá no pseudocódigo uma oportunidade de não se...") Tag: wikieditor
  • 02:34, 15 January 2025Sobre introdução à computação (hist | edit) ‎[3,024 bytes]Wikiadmin (talk | contribs) (Created page with "A ordem dos capítulos aqui é semelhante à ordem das aulas de um semestre de introdução à computação. Nas primeiras aulas o professor descreve a arquitetura básica de um computador e os fundamentos de entrada e de saída sem se preocupação com especificações técnicas. Velocidade de relógio, bits, quantidade de memória. Isso não é importante numa introdução. Para o início o importante é entender a lógica do computador por meio de uma linguagem de alt...") Tag: wikieditor
  • 00:58, 15 January 2025Introdução à computação (hist | edit) ‎[943 bytes]Wikiadmin (talk | contribs) (Created page with "# Sobre introdução à computação # Pseudocódigo # Introdução ao C # Simule algoritmo no papel # Estruturas de seleção ## se senão ## Operador condicional ## seleção caso # Laços de repetição # Vetores e matrizes # Tipo de dado Struct # '''Funções''' ## Introdução às funções ## Funções, vetores e matrizes ## Funções que devolvem um struct ## Introdução aos ponteiros ## Funções, str...") Tag: wikieditor