Programação em Linguagem C

Tamanho: px
Começar a partir da página:

Download "Programação em Linguagem C"

Transcrição

1 Bacharelado em Sistemas de Informação Programação em Linguagem C Parte 1 (básico) Profa. Dra. Elisamara de Oliveira

2 Índice 2 Capítulo O Conceito de Algoritmo O que é um algoritmo? Conceitos Básicos da Programação de Computadores O Conceito de Programação Estruturada... 8 Capítulo Expressão de Algoritmos Expressão de Algoritmos através de Diagramas Expressão de Algoritmos através de Linguagem de Programação Expressão de Algoritmos através de Pseudo-linguagem Nossa escolha: os algoritmos serão expressos em pseudo-linguagem Capítulo Pseudo-linguagem de Programação: PortuCê Identificadores Tipos Básicos e Declaração de Variáveis Comando de Atribuição Operadores Aritméticos Operadores Lógicos Operadores Relacionais Comando Condicional Comando de Repetição Comandos de Entrada e Saída Separador de comandos Bloco de Programa Capítulo Construção de Algoritmos em PortuCê: Praticando os comandos e fazendo cálculos Declaração de variáveis, comandos leia e imprima Comando condicional se Bloco de Programa Operações Básicas com Números Operações com Operadores Lógicos e Relacionais Capítulo Construção de Algoritmos em PortuCê: Usando Laços de Repetição Comando de repetição enquanto Uso de flags entrada indeterminada de dados Comando de repetição enquanto entrada de dados determinada... 49

3 3 Capítulo A linguagem de programação C Tipos Básicos e Declaração de Variáveis em C Operadores de Atribuição, Aritméticos, Relacionais e Lógicos (Binários) em C Comando Condicional em C Comando de Seleção Múltipla em C Comando de Repetição while em C Comandos de Leitura e Escrita em C Bloco de Programa em C Funções Úteis em C Tradução de PortuCê para a Linguagem C Capítulo Construção de Programas em C: Metodologia para Desenvolvimento de Algoritmos Os 10 passos da metodologia Exemplo dos Impulsos Telefônicos Exemplo do Preço Final de Automóveis Exemplo da Eleição Exemplos de Programas em C Respostas de Alguns Exercícios ª aula Prática em Laboratório Estudo Dirigido

4 Capítulo 1 O Conceito de Algoritmo 4 Em nosso dia-a-dia executamos mecanicamente uma série de ações que são seguidas seqüencialmente e que provocam o acontecimento de algo. Por exemplo, temos um trajeto freqüente ao sairmos diariamente de casa em direção ao nosso trabalho ou à nossa universidade que, sempre que seguido, nos leva ao nosso destino. Isso é um algoritmo. Em outras palavras, um algoritmo descreve eventos com duração finita, que envolvem um conjunto de objetos cujas características podem ser alteradas, através de ações que ocorrem seqüencialmente O que é um algoritmo? "Programar é construir algoritmos" "Programa = Algoritmo + Estruturas de Dados" "No processo de construção de programas a formulação do algoritmo e a definição das estruturas de dados estão intimamente ligadas" Num algoritmo podem-se observar os seguintes aspectos: - Ação: evento que ocorre num período de tempo finito - Estado: propriedades de um objeto numa dada situação - Processo: seqüência temporal de ações - Padrão de comportamento: toda vez que é seguido, um evento ocorre Exemplo de um algoritmo: Algoritmo para fazer " batatas fritas para o jantar " "Traga a cesta com batatas da despensa" ; "Traga a panela do armário"; Coloque óleo na panela ; Se "a roupa é clara então "coloque o avental"; Enquanto "nº de batatas é insuficiente para o número de pessoas" faça "descasque as batatas"; Pique as batatas ; Esquente o óleo da panela ; "Frite as batatas na panela"; Escorra o excesso de óleo das batatas fritas ; "Coloque as batatas fritas numa vasilha com papel absorvente".

5 Apesar de muito simples, algumas observações importantes podem ser notadas neste algoritmo: 5 tempo verbal está na forma imperativa ( faça, traga, frite, etc); Há um seqüenciamento das ações, que estão separadas por um ponto-e-vírgula ; ; avental não é usado toda vez: existe um motivo para colocá-lo, ou seja, há uma condição para que o avental seja colocado; número de batatas descascadas varia; a ação de descascar uma batata repete-se até que a condição de parada (ser suficiente para alimentar as pessoas que irão jantar) seja alcançada; A ordem das ações é importante: primeiro descasca-se a batata, pica-se a batata, para depois fritá-la... Exemplos de algoritmos conhecidos: - Qual é o algoritmo que você descreve para vir estudar? - Qual é o algoritmo para se fazer uma feijoada? Apesar de receitas culinárias e trajetos rotineiramente percorridos encaixarem-se perfeitamente no conceito inicial de algoritmo, no nosso curso estamos interessados num tipo de algoritmo especial, que seja capaz de ser executado por um computador. Para tanto, é necessário que identifiquemos problemas do mundo real que possam ser traduzidos em ações primitivas finitas e dos quais se possa extrair um padrão de comportamento. Qual o padrão de comportamento utilizado para gerar as seqüências? 1, 5, 9, 13, 17, 21, , 1, 2, 3, 5, 8, 13, 21, Os dois exemplos anteriores são problemas do mundo real que, por serem finitos (ou para os quais se possa determinar uma condição de parada) e por possuírem um padrão de comportamento, podem ser resolvidos através de um programa de computador. No entanto, antes de se chegar ao programa de computador, o 1º passo é fazer um algoritmo que seja capaz de solucionar o problema em questão... Definição de algoritmo: Um algoritmo é a descrição de um padrão de comportamento, expresso em termos de um repertório bem definido e finito de ações primitivas que podem ser executadas Num algoritmo distinguem-se claramente dois aspectos: - Aspecto estático: texto - Aspecto dinâmico: sua execução (a partir de valores iniciais) O curso de Algoritmos é, na realidade, um curso de Programação de Computadores para alunos que iniciam cursos superiores na área de Informática. Para começarmos a construir algoritmos e fazermos nossos primeiros programas de computador, é necessário que o aluno domine uma série de conceitos básicos, que são apresentados a seguir, a começar pelo próprio computador!

6 1.2. Conceitos Básicos da Programação de Computadores 6 Computador: é uma máquina capaz de seguir uma espécie de algoritmo chamado programa que está escrito em linguagem de máquina. Linguagem de máquina: internamente o computador executa uma série de instruções que ficam armazenadas em sua memória principal em código binário, ou seja, em linguagem de máquina (zeros (0) e uns (1) que são os dígitos binários ou bits). Linguagem de alto nível: para escrever os programas de computador, os programadores utilizam linguagens que estão mais próximas da linguagem humana, que são chamadas de linguagens de alto nível ou simplesmente linguagens de programação. Exemplos de linguagens de programação (alto nível) são Pascal, C, C++, Basic, Fortran, dentre muitas outras. Linguagem de montagem: há programas de computador que precisam interferir diretamente no hardware da máquina para permitir a execução de funções específicas como as oferecidas por sistemas operacionais, por exemplo. Neste caso, os programadores utilizam as linguagens de montagem ou linguagens assembly, que estão muito próximas da linguagem de máquina e mais distantes das linguagens de programação, sendo por isso chamadas de linguagem de baixo nível. A figura 1 mostra a relação entre as linguagens discutidas anteriormente. Numa ponta está a linguagem de máquina e no outro extremo estão as linguagens humanas. Quanto mais próxima da linguagem de máquina, mais de baixo nível é a linguagem; em contrapartida, quanto mais próxima das linguagens humanas, mais alto nível. As linguagens de programação fazem uma espécie de ponte entre a linguagem binária ou linguagem que o computador entende e a linguagem que nós humanos utilizamos. Figura 1 Relação entre linguagens de baixo e de alto nível Compilador: permite que os programadores utilizem linguagens de alto nível para escrever os programas de computador, pois se encarrega de traduzi-los para linguagem de máquina. O compilador é um programa que traduz uma determinada linguagem de programação para linguagem de máquina. Desta forma, existem diversos compiladores específicos para cada uma das linguagens de programação e específicos para cada sistema operacional, conforme ilustra a figura 2. Um compilador C para o sistema Windows 98 (compilador X) é diferente de um compilador C para o sistema Unix (compilador Y), embora a linguagem de programação seja a mesma (linguagem de alto nível). O compilador de linguagem de montagem ou linguagem assembly é chamado de assembler.

7 7 Programa escrito em linguagem de alto nível Compilador X Compilador Y Compilador Z Programa em Programa em Programa em Linguagem de Linguagem de Linguagem de Máquina para Máquina para Máquina para o Computador o Computador o Computador X Y Z Figura 2 Os compiladores são específicos para cada linguagem e para cada sistema operacional O ciclo completo da elaboração do algoritmo à execução de um programa de computador pode ser visto na figura 3. Cada um dos componentes deste ciclo é explicado a seguir. algoritmo editor código fonte compilador código objeto arquivos de biblioteca linker executável Figura 3 Do algoritmo à execução de um programa de computador Algoritmo: estrutura do programa; instruções que descrevem a lógica do programa Editor de texto: permite que o código fonte do programa seja editado em um arquivo-fonte. Alguns compiladores têm editores com ambiente de programação integrados, como é o caso do Turbo Pascal e do Turbo C. Código fonte: conjunto de comandos escritos na linguagem de programação escolhida (como Pascal, C, Java, C++, etc). O código fonte fica armazenado no arquivo-fonte em formato ASCii, ou seja, em texto. (O arquivo-fonte possui a extensão relativa à linguagem de programação usada, por exemplo,.pas (Pascal),.c (C),.cpp (C++),.cs (C#),.java (Java)).

8 8 Compilador: lê o código fonte do programa e cria um outro arquivo em linguagem binária ou de máquina. Código objeto: arquivo resultante da compilação do código fonte. Contém informações sobre alocação de memória, os símbolos do programa (como nomes de variáveis e de funções) e também informações sobre debug. (O arquivo-objeto possui a extensão.obj para a maioria das linguagens de programação). Arquivos de biblioteca: contém funções já compiladas que podem ser utilizadas no programa. Linker: cria um programa executável a partir de arquivos-objeto e dos arquivos de biblioteca. Código executável: programa que pode ser executado no computador (o arquivo-executável possui a extensão.exe) O Conceito de Programação Estruturada Para conseguirmos construir programas de computador, é necessário cumprir as 5 etapas básicas da programação, das quais a confecção do algoritmo é extremamente importante. As 5 etapas da programação de computadores são: 1. Identificação de um problema do mundo real 2. Confecção do algoritmo 3. Teste do algoritmo 4. Confecção do programa de computador 5. Execução do programa no computador Para realizarmos este ciclo de etapas com sucesso, quer dizer, para conseguirmos fazer programas de computador com qualidade e confiáveis, é muito importante a utilização de técnicas programação como a programação estruturada. A programação estruturada é uma metodologia de projeto e desenvolvimento, que pretende: - facilitar a escrita; - facilitar o entendimento; - permitir a verificação; - facilitar a alteração e a manutenção dos programas de computador O principal objetivo da metodologia de programação estruturada é reduzir a complexidade dos problemas. "A arte de programar consiste na arte de organizar e dominar a complexidade. A metodologia de programação estruturada, quando utilizada, induz o programador a produzir programas: - confiáveis - de fácil manutenibilidade - flexíveis - documentados - legíveis

9 9 Exemplo de Programa Estruturado Programa 1 Programa 2 read idade leia(idade); if (idade.gt. 17) goto 3 se IDADE > 17 //pessoa tem mais de 17 anos if (idade.gt. 12) goto 2 então imprima ( Você é um adulto ) if (idade.gt. 8) goto 1 senão se IDADE > 12 //pessoa tem entre 13 e 17 anos print Você é uma criança então imprima ( Você é um adolescente ) goto 4 senão se IDADE > 8 //pessoa entre 9 e 12 anos 1 print Você é pré-adolescente então imprima ( Você é pré-adolescente ) goto 4 senão imprima ( Você é uma criança ); 2 print Você é um adolescente goto 4 3 print Você é um adulto 4 continue - Os dois programas fazem a mesma coisa. Tente entender o que eles fazem. Qual dos dois programas o ajudou mais a entender a sua lógica? - Com certeza o programa 2 facilitou muito mais o seu entendimento... E o motivo principal é que o programa 2 é um programa estruturado e o programa 1 não é estruturado. Veja as principais diferenças entre eles: Programa não estruturado Programa estruturado - uso excessivo de gotos - não usa gotos (goto é um comando de desvio incondicional, e seu uso é muito indesejável pois quebra o fluxo de execução seqüencial das instruções do programa) - difícil de entender - fácil de entender - ilegível - legível - difícil de testar - de fácil teste (faça alguns testes com idades diferentes e veja qual dos dois programas é mais fácil de ser testado...) - fluxo de controle não seqüencial - fluxo de controle seqüencial - não usa comentários - usa comentários (os comentários não fazem parte do código, mas facilitam o seu entendimento e contribuem para a documentação do código implementado)

10 Resposta dos Exercícios 10 Qual o padrão de comportamento utilizado para gerar as seqüências? 1, 5, 9, 13, 17, 21, A série de números começa com 1 (primeiro termo) Para se gerar o segundo termo soma-se 4 ao primeiro número Para se gerar qualquer um dos outros termos da série, basta somar 4 ao número imediatamente anterior Esta é uma série infinita. Seu fim deve ser determinado por uma condição do tipo gerar os 10 primeiros termos da série ou gerar todos os termos da série menores que 100 1, 1, 2, 3, 5, 8, 13, 21, A série de números começa com 1 (primeiro termo) O segundo termo também é 1 Para se gerar qualquer um dos outros termos da série, basta somar os dois termos imediatamente anteriores Exemplos: 1 (primeiro termo) + 1 (segundo termo) =2 (terceiro termo) 1 (segundo termo) + 2 (terceiro termo) = 3 (quarto termo) 2 (terceiro termo) + 3 (quarto termo) = 5 (quinto termo) Esta é uma série infinita, conhecida como série de Fibonacci. Seu fim deve ser determinado por uma condição do tipo gerar os 10 primeiros termos da série ou gerar todos os termos da série menores que 100.

11 Capítulo 2 Expressão de Algoritmos 11 Os algoritmos podem ser expressos através de diagramas, através de pseudo-linguagens ou através da própria linguagem de programação. Vamos examinar cada uma destas três opções e, no final deste capítulo, vamos optar por uma delas para que possamos começar a fazer nossos primeiros algoritmos! 2.1. Expressão de Algoritmos através de Diagramas A utilização de diagramas para a expressão de algoritmos foi bastante utilizada até a década de Diagramas de Chapin e fluxogramas foram os principais métodos utilizados, então. Nos métodos baseados em diagramas, uma grande variedade de formas geométricas como quadrados, retângulos, hexágonos, pentágonos, etc., são utilizadas para representar as instruções de leitura e impressão de dados, assim como os comandos condicionais, de repetição, etc. Além disso, uma série de regras para a disposição dessas formas e/ou setas para representar o seqüenciamento das instruções fazem parte desses métodos. Apesar de terem sido utilizados largamente pelas primeiras gerações de programadores, estes métodos apresentam uma série de inconveniências como: O programador tem que memorizar todas as formas geométricas e conhecer as regras de interrelacionamento entre elas; O programador perde um tempo considerável para fazer e refazer desenhos, tendo que possuir diversas réguas com os símbolos dos diagramas; Para algoritmos muito grandes, os desenhos começam a ocupar muitas páginas, tornando impraticável a visualização de toda a solução; A memorização de regras de expressão desvia a atenção do programador que não tem apenas de se concentrar na lógica do problema, como seria desejável, mas tem as preocupações adicionais de elaborar desenhos e consultar regras e regras... Além de todos os inconvenientes citados, que de longe esgotam os seus problemas, os métodos baseados em diagramas se distanciam muito do alvo da programação que é a expressão da lógica algorítmica na própria linguagem de programação! Além disso, esses métodos não são nem um pouco intuitivos... veja a figura 1 e tente descobrir o que o programa faz... sem muito esforço, se for possível: Figura 1 Algoritmo expresso através de um diagrama de Chapin

12 12 Exemplo de um Fluxograma A figura 2 mostra um exemplo de um algoritmo expresso através de um fluxograma. Observe a existência de diferentes formas geométricas para as diferentes instruções e o uso de setas para representar o fluxo dos dados. Você seria capaz de dizer o que este algoritmo faz? Quais as variáveis que ele utiliza e de que tipo básico elas são? (Dica: este algoritmo faz a mesma coisa que o expresso pelo diagrama de Chapin mostrado na figura 1). Figura 2 Algoritmo expresso através de um Fluxograma 2.2. Expressão de Algoritmos através de Linguagem de Programação Expressar um algoritmo através de uma linguagem de programação é o objetivo, a meta do programador, com certeza. Mas, isso é feito quando o programador já adquiriu bastante experiência de programação, quer dizer, quando o programador já consegue programar diretamente da linguagem de programação. Os programadores iniciantes podem ter grandes dificuldades para aprenderem a programar se forem direto às instruções da linguagem de programação... Uma linguagem de programação permite, além da expressão do raciocínio algorítmico, a sua execução no computador (por causa do compilador, com já aprendemos). Embora as linguagens de programação sejam chamadas de linguagens de alto nível, devido à sua proximidade com a linguagem

13 13 humana, suas instruções vêm em inglês... O inglês é uma das diversas linguagens humanas, claro, mas pode oferecer um certo desconforto aos estudantes, principalmente aos que falam português, como é o nosso caso... Existem diversas linguagens de programação. Cada uma pode ser mais adequada à resolução de problemas específicos, e recebem alguns rótulos por isso, como linguagens para aplicações científicas, linguagens para desenvolvimento de software básico, linguagens para utilização intensiva de recursos gráficos, para manipulação de bancos de dados, etc, etc, e... linguagens para o ensino de programação! Veja a figura 3. É um código escrito em Pascal. PROGRAM MenorValor; { Este programa seleciona o menor número em uma seqüência de números inteiros VAR Valor, Menor: INTEGER; BEGIN END. WRITE( Forneça um número inteiro: ); READLN(Valor); Menor := Valor; WHILE Valor <> -1 DO BEGIN IF Valor < Menor THEN Menor := Valor; WRITE( Forneça um número inteiro (flag=-1): ); READLN(Valor); END; {while WRITELN( O menor valor lido foi:, Menor); Figura 3 Algoritmo expresso na Linguagem de Programação Pascal A figura 3 mostra um algoritmo expresso na linguagem de programação Pascal, ou seja, já é um programa de computador. Observe a estrutura do programa: começa com PROGRAM, depois tem a seção VAR na qual as variáveis são declaradas e depois vêm as instruções contidas entre o BEGIN (início) e o END. (fim.). Você seria capaz de dizer o que este algoritmo faz? Quais as variáveis que ele utiliza e de que tipo básico elas são? (Dica: este programa faz a mesma coisa que o expresso pelo diagrama de Chapin e pelo fluxograma mostrados nas figuras 1 e 2). Agora observe o exemplo de um programa escrito na linguagem de programação C.

14 14 /* Este programa seleciona o menor número em uma seqüência de números inteiros */ #include <stdio.h> int valor, menor; void main (void) { printf ( \n Forneça um número inteiro: ); scanf ( %i, &valor); menor = valor; while (valor!= -1) { if (valor < menor) menor = valor; printf( \nforneça um número inteiro ( 1 para terminar): ); scanf ( %i, &valor); printf ( O menor valor lido foi: %i, menor); Figura 4 Algoritmo expresso na Linguagem de Programação C A figura 4 mostra um algoritmo expresso na linguagem de programação C, ou seja, também é um programa de computador. Observe a estrutura do programa: começa com um comentário, depois tem a inclusão de uma biblioteca de funções, depois a declaração das variáveis e em seguida vem a seção main na qual as instruções do programa estão contidas entre o { (início) e o (fim). Você seria capaz de dizer o que este algoritmo faz? Quais as variáveis que ele utiliza e de que tipo básico elas são? (Dica: este programa faz a mesma coisa que o expresso pelo diagrama de Chapin, pelo fluxograma e pelo programa Pascal mostrados nas figuras 1, 2 e 3). O programa traz um comentário dizendo explicitamente o que ele faz. Portanto, garanto que você conseguiu responder à primeira pergunta. Com relação às variáveis que o programa utiliza e seu tipo básico, observe a declaração int valor, menor; no programa. Há duas variáveis ali declaradas: valor e menor... o tipo básico é int... um pouquinho de imaginação e int = inteiro! Que tal você comparar o código C com o código Pascal? Semelhanças? Qual dos dois lhe pareceu mais fácil de entender? Bem, se sua resposta foi o código Pascal, digo-lhe que o Pascal tem o "rótulo" de linguagem mais adequada ao ensino de programação... Se sua resposta foi o código C, saiba que é uma linguagem que foi criada para ser utilizada por programadores experientes... Mas... se você teve dificuldade de entender ambos os códigos, não se preocupe! O curso está apenas começando e há muito o que se aprender de lógica de programação! Garanto que no final do curso este programa vai parecer muito, muito fácil para você!

15 Expressão de Algoritmos através de Pseudo-linguagem Uma pseudo-linguagem é uma notação para expressão de algoritmos para ser utilizada nas 3 primeiras etapas da programação definidas na seção 1.3 da primeira lição, quais sejam, identificação de um problema do mundo real, confecção e teste do algoritmo. É apresentada na forma de português estruturado. Embora seja uma pseudo-linguagem, possui estrutura, sintaxe e semântica semelhantes às de uma linguagem de programação. A principal diferença entre a pseudo-linguagem e a linguagem de programação é que a primeira não possui um compilador. Isso significa que é possível expressar o raciocínio algorítmico utilizando-se uma pseudo-linguagem, mas o programa não pode ser executado no computador. São muitas as vantagens de se utilizar uma pseudo-linguagem para escrever algoritmos: É uma linguagem independente de máquina; o programador pensa somente no problema a ser resolvido sem se preocupar com possíveis restrições do compilador ou do hardware (computador); O programador tem que conhecer a sintaxe, a semântica e a estrutura da pseudolinguagem, mas tem total liberdade para criar novos comandos ou usar instruções em alto nível (ou em forma de frases): por um lado ele vai se acostumando com a rigidez da sintaxe das linguagens de programação, mas por outro lado, tem a liberdade de expressar seu raciocínio sem esbarrar em limitações de contexto; Uma vez estando pronto o algoritmo na pseudo-linguagem, a sua implementação no computador (etapas 4 e 5 da programação: confecção e execução do programa) fica muito facilitada, pois toda a lógica já foi desenvolvida e testada e somente uma tradução para a linguagem de programação-alvo se faz necessária. Veja o exemplo de um algoritmo escrito na pseudo-linguagem PortuCê. /* Este programa seleciona o menor número em uma seqüência de números inteiros */ int valor, menor; principal( ) { imprima ( Forneça um número inteiro: ); leia ( %i, &valor); menor = valor; enquanto (valor!= -1) { se (valor < menor) menor = valor; imprima ( Forneça um número inteiro( 1 para terminar): ); leia ( %i, &valor); imprima( O menor valor lido foi: %i, menor); Figura 5 Algoritmo expresso na pseudo-linguagem de PortuCê

16 A figura 5 mostra um algoritmo expresso na pseudo-linguagem PortuCê. Observe a estrutura do algoritmo: começa com um comentário dizendo o que o algoritmo faz, tem a declaração das variáveis e depois vem a seção principal ( ) em que são apresentadas as instruções contidas entre o { (início) e (fim) do algoritmo. Você seria capaz de dizer o que este algoritmo faz? Quais as variáveis que ele utiliza e de que tipo básico elas são? (Dica: este algoritmo faz a mesma coisa que o expresso pelo diagrama de Chapin, pelo fluxograma, pela linguagem Pascal e pela linguagem C mostrados nas figuras 1, 2, 3 e 4). Este algoritmo em PortuCê corresponde ao programa em C mostrado no exemplo 2.3. Observe a grande semelhança entre eles. Essa semelhança é proposital, com certeza. O PortuCê é quase que a tradução de um programa C para o português. As vantagens de se utilizar o PortuCê são muitas. Pense sobre elas, pois o PortuCê será nosso maior aliado no aprendizado de algoritmos! 16 Um exercício interessante para você fazer agora, seria visitar os exemplos deste algoritmo escritos no diagrama de Chapin e no fluxograma e compará-los com o PortuCê... Diga-me qual deles é mais fácil de entender? Qual dessas formas de expressão de algoritmos você escolheria? 2.4. Nossa escolha: os algoritmos serão expressos em pseudo-linguagem Como eu disse no início desta lição, após conhecermos as 3 formas de expressão de algoritmos, faríamos nossa escolha. E aqui está o veredito: usaremos pseudo-linguagem! Espero que você esteja de acordo comigo. As justificativas dessa nossa escolha são muitas e foram já fundamentadas. A pseudolinguagem PortuCê utiliza o português, numa forma estruturada, e tem estrutura, sintaxe e semântica muito semelhantes às da linguagem de programação C. Apesar do Pascal ter se consagrado como uma linguagem adequada para o ensino da programação aos estudantes que a iniciam, ou seja, como primeira linguagem de programação, a linguagem C, antes restrita à comunidade científica, ganhou uma popularidade inquestionável na década de 1990, que se estende aos dias atuais, pois é a base de novas linguagens e paradigmas. Em função disto, a linguagem C passou a ser alvo do interesse dos estudantes. A resistência em utilizá-la como primeira linguagem de programação pelos professores, se deveu, em parte, ao fato de seus criadores, Dennis Ritchie e Brian Kernighan, terem afirmado que C retém a filosofia básica de que os programadores sabem o que estão fazendo 1. Bem, se considerarmos que programadores iniciantes não têm condições de saber com segurança o que estão fazendo, exatamente pelo fato de serem inexperientes, a adoção da linguagem seria realmente questionável. No entanto, as linguagens de programação evoluíram bastante e as mais utilizadas hoje, como o Java e o C#, têm como base a linguagem C. Além disso, a adoção de um método adequado e coerente para o ensino da programação de computadores pode atuar como um facilitador do processo de aprendizagem, permitindo que uma linguagem mais complexa, como o C, possa ser ensinado sem oferecer obstáculos à aprendizagem. Assim, a adoção do PortuCê, nossa pseudo-linguagem, e da metodologia de ensino proposta pela professora, viabiliza a adoção da linguagem de programação C como primeira linguagem. Isso vai ao encontro das expectativas dos estudantes e coloca o ensino da programação na direção da atual tendência da programação de computadores que vem utilizando, cada vez mais, o C como base dos novos e modernos paradigmas de programação. O PortuCê, além de oferecer o conforto de utilizar nossa língua-pátria, o que o torna muito familiar ao programador, não requer a memorização das abomináveis formas geométricas e setas e mais setas dos diagramas... Fique tranqüilo, meu estudante, mais duas lições e você já estará fazendo seus primeiros programas de computador! 1 Kernighan, B., Ritchie, D. C- A Linguagem de Programação Padrão ANSI, São Paulo: Campus, 1989.

17 Capítulo 3 Pseudo-linguagem de Programação: PortuCê Identificadores Todo programa de computador manipula dados que são armazenados em variáveis. Uma variável precisa ter um nome que a identifique de forma única no programa: é o identificador. Um identificador em PortuCê é formado por caracteres alfanuméricos. O primeiro caracter tem que ser uma letra; os outros caracteres podem ser: letras: A-Z, a-z dígitos: 0-9 sublinhado: _ Não pode haver dois identificadores iguais. Letras minúsculas e letras maiúsculas são diferentes Os identificadores não podem ser acentuados. Não pode haver espaço em branco num identificador. O caracter ç não pode ser usado num identificador. Um identificador não pode ter o mesmo nome das palavras reservadas do PortuCê (como principal, se, senão, inteiro, real...). Exemplos de identificadores válidos: NOME, raiz1, letra4, Total_dos_Salarios, Nome_de_Familia Exemplos de identificadores inválidos: 4pontos (começa com número) CUSTO FINAL PreçoTotal Pessoa+Alta Preco-caro Total_dos_salários inteiro (tem espaço em branco) (caracter ç não pode ser usado) (caracter + não pode ser usado) (caracter - não permitido) (palavra acentuada) (palavra reservada do PortuCê)

18 3.2. Tipos Básicos e Declaração de Variáveis 18 Os dados manipulados por um programa são armazenados em variáveis. As variáveis precisam ter um nome (identificador), um tipo associado e precisam ser declaradas antes que possam ser utilizadas. Há três tipos básicos que podem ser associados às variáveis: inteiro real caracter Para se declarar uma variável escreve-se o nome de seu tipo, salta-se um espaço em branco, em seguida o nome do seu identificador e ; para finalizar a declaração. Se mais de uma variável for do mesmo tipo básico, elas podem ser declaradas juntas, apenas separadas por vírgulas,. Toda variável precisa ser declarada antes de ser utilizada. Não pode haver duas variáveis com mesmo nome, mesmo que tenham tipos básicos diferentes, a menos que algum caracter maiúsculo ou minúsculo as diferencie. Exemplo de declaração de variáveis válido: caracter NOME[20], letra; inteiro soma; real raiz1, Total_dos_Salarios; caracter Nome_de_familia[30]; Exemplo de declaração de variáveis INVÁLIDO: caracter NOME[20]; letra4; (o separador de identificadores deve ser a vírgula) inteiro: SOMA; ( não pode haver o sinal de dois-pontos após o nome do tipo) raiz1, Total_dos_Salarios real; (o tipo básico deve vir antes dos identificadores) carater Nome_de_Familia[30]; (o nome do tipo básico está errado) real SOMA; (a variável SOMA já foi declarada: um identificador não pode ser duplicado) 3.3. Comando de Atribuição O conteúdo das variáveis do programa pode ser determinado através dos comandos de atribuição e de leitura. O comando de atribuição permite que um determinado valor seja armazenado numa variável. O símbolo do comando de atribuição é = Pode-se atribuir a uma variável um valor que NÃO seja compatível com o tipo básico desta variável, ou seja, números inteiros podem ser atribuídos a variáveis do tipo caracter ou real, números reais podem ser atribuídos a variáveis do tipo caracter ou inteiro, etc. Mas, muito cuidado, pois neste tipo de atribuição ocorre a CONVERSÃO AUTOMÁTICA DE TIPOS e o que chega na variável de destino pode ser um desastre! Toda variável deve ter um valor a ela atribuído antes de ser usada no programa Em variáveis reais, SÓ EXISTE PONTO DECIMAL; não se pode usar vírgula

19 19 Exemplos de atribuições válidas: letra4 = L ; Soma = 0; Total_dos_Salarios = ; NOME = Luiza ; Exemplos de atribuições INVÁLIDAS: NOME = Maria; (a cadeia de caracteres tem que estar entre ) NOME = Maria ; (o símbolo que delimita a cadeia de caracteres não pode ser apóstrofo) Total_dos_Salarios = ; (o valor a ser atribuído a uma variável numérica não pode estar entre apóstrofos, senão ocorrerá uma conversão automática) NumeroInteiro = 10.0; (numa variável do tipo INTEIRO não pode haver parte decimal; este caso está sujeito à conversão automática) SOMA := 0; (o símbolo do comando de atribuição é = e não :=) 3.4. Operadores Aritméticos Os operadores aritméticos permitem que expressões da Matemática sejam atribuídas às variáveis. Os operadores aritméticos implementam as operações básicas (adição, subtração, divisão e multiplicação) e algumas operações mais avançadas da Matemática (logaritmo, raiz quadrada, seno, cosseno...). A variável que vai receber o resultado de uma operação aritmética tem que ser de um tipo numérico compatível, capaz de armazenar o valor resultante, senão ocorrerá a conversão automática com resultados muitas vezes indesejados ou mesmo imprevisíveis. Os operadores aritméticos básicos são: + (adição) - (subtração) * (multiplicação) / (divisão real) ++ ( adiciona 1) -- (subtrai 1) Alguns operadores aritméticos mais avançados são: % (resto da divisão inteira) / (quociente da divisão inteira) sqrt( ) (raiz quadrada) abs( ) (valor absoluto)

20 Exemplos de expressões aritméticas válidas: Resto = 10 % 3; Quociente = 10 / 3; Salario = ((TotaldeHoras*32.50) ) - DescontoINSS; ValoremDolares = Salario / 2.55; ImpostodeRenda = Salario * (0.20); Nome = Nome + da Silva ; Contador = Contador +1; ++Contador; --Contador; Raiz = sqrt(numero); 20 Exemplos de expressões aritméticas INVÁLIDAS: Resto = 10.0 % 3; (o operador % só pode envolver números inteiros) Salario = TotaldeHoras * ; (os operadores * e + são diádicos, envolvem sempre dois operadores, portanto não podem ser utilizados juntos) ValoremDolares = Salario / 2,55; (não existe vírgula decimal, o separador é sempre o ponto. ) Nome = Nome * 3; (em variáveis do tipo CARACTER só pode ser feita adição ou subtração de caracteres) Contador = *1; (o operador * é diádico, tem que envolver dois operandos) 3.5. Operadores Lógicos Os operadores lógicos permitem que os três principais operadores da Álgebra de Boole possam ser utilizados num programa: E, OU e NÃO. O estado dos operandos e o resultado de uma operação lógica é sempre FALSO (avaliado como zero) ou VERDADEIRO (avaliado como diferente de zero). Os operadores lógicos são: e (conjunção) ou (disjunção)! (negação) O operador binário e envolve sempre dois operandos e o resultado é VERDADEIRO somente quando ambos os operandos são VERDADEIROs, ou seja, basta que um operando seja FALSO para que o resultado seja FALSO. O operador binário ou envolve sempre dois operandos e o resultado é FALSO somente quando ambos os operandos são FALSOs, ou seja, basta que um operando seja VERDADEIRO para que o resultado seja VERDADEIRO. O operador unário! muda o estado do operando de FALSO para VERDADEIRO ou de VERDADEIRO para FALSO.

21 Uma variável lógica é aquela que pode assumir apenas os valores VERDADEIRO ou FALSO. 21 Na prática, as variáveis lógicas são utilizadas para descrever o funcionamento de um sistema, como um circuito formado por uma bateria e uma lâmpada: A representação dos níveis lógicos (1=verdadeiro e 0=falso) pode ser melhor entendida através de chaves que representam um circuito: Uma função E resulta em 1=VERDADEIRO se, e somente se, todas as variáveis lógicas de entrada tiverem valor 1=VERDADEIRO. Em outras palavras: a lâmpada do circuito só acende se ambas as chaves estiverem fechadas. (Na função E somente se ambas as entradas forem verdadeiras, a expressão é avaliada como verdadeira).

22 22 Uma função OU resulta em 1=VERDADEIRO se pelo menos uma das variáveis lógicas de entrada tiverem valor 1=VERDADEIRO. Em outras palavras: a lâmpada acende se uma das chaves estiver fechada ou quando as duas estiverem fechadas (forem verdadeiras). (Na função OU basta que uma entrada seja verdadeira para a expressão ser avaliada como verdadeira). Uma função! (não) é uma operação de inversão. Ela converte o estado ou valor de uma variável lógica em seu inverso lógico: de VERDADEIRO para FALSO e de FALSO para VERDADEIRO. Exemplos de expressões lógicas válidas: se (Altura > 1.80 e Idade < 21 e Escolaridade >= 2) se (Idade >= 13 e Idade <=20) se ((Media >= 7.0 e Faltas <= 18) ou FoiDispensado == 1) se!( numero % 2 == 0) Exemplos de expressões lógicas INVÁLIDAS: se (Altura > 1.80 e ou Idade < 21) (os operadores <e> e <ou> são binários, envolvem sempre 2 operandos, portanto não podem ser utilizados juntos) se (Idade >=13 e <= 20) (o operando Idade deveria ser repetido para se obter o resultado lógico da comparação)

23 Operadores Relacionais Os operadores relacionais permitem a comparação entre conteúdos de variáveis ou de valores, e resultam sempre num resultado FALSO (avaliado como zero) ou VERDADEIRO (avaliado como diferente de zero). Os operadores relacionais são: > (maior que) >= (maior ou igual a) < (menor que) <= (menor ou igual a) == (igual a)!= (diferente de) Exemplos de expressões relacionais válidas: se (Resposta == S ) se (Resposta == S ou Resposta == s ) se (Resposta!= S e Resposta!= s ) se (Sexo == F e Altura <= 1.50) Exemplos de expressões relacionais INVÁLIDAS: se (Resposta! = S ) (o símbolo do operador diferente está errado: não pode haver espaço em branco entre o! e o = ) se (Altura < = 1.50) (o símbolo do operador menor que está errado: operador não pode haver espaço em branco entre o < e o = )

24 3.7. Comando Condicional 24 O comando condicional permite que se tomem 2 caminhos diferentes e mutuamente exclusivos a partir da avaliação de uma condição. Se a condição é avaliada como verdadeira um caminho é seguido, se é avaliada como falsa outro caminho é escolhido, nunca ambos! A associação do comando condicional com fatos rotineiros é imediata: Se estiver chovendo eu vou de carro, senão eu vou de bicicleta, neste exemplo, a pessoa avalia a condição do tempo antes de decidir se sairá de carro ou de bicicleta e não há possibilidade dela sair com ambos os meios de transporte. A sintaxe do comando condicional é: se (<condição>) { <bloco de comandos 1> senão { <bloco de comandos 2> A semântica (como funciona) do comando condicional é: 1. A <condição> é avaliada como VERDADEIRA (valor diferente de zero) ou FALSA (valor igual a zero); 2. Se a <condição> for VERDADEIRA, o <bloco de comandos 1> é executado e o comando condicional é finalizado; 3. Se a <condição> for FALSA, o <bloco de comandos 2> é executado e o comando condicional é finalizado. senão é cláusula do comando se, ou seja, não é comando, apenas faz parte do comando se. A cláusula senão pode não existir num comando se. Neste caso (não existe a cláusula senão), quando a <condição> é avaliada como FALSA, nenhum comando é executado e o comando se é finalizado. Os delimitadores de { e são obrigatórios quando existe mais de um comando no <bloco de comandos 1> ou mais de um comando no <bloco de comandos 2>. Quando existir apenas um comando, os delimitadores ficam opcionais. Exemplos de comandos condicionais VÁLIDOS: se (Media >= 7.0) Aprovado = 1; se (Media >= 7.0) { Aprovado = 1; se (Media >= 7.0) { Aprovado = 1; ++ContadorAprovados;

25 25 se (Media >= 7.0) Aprovado = 1; senão Aprovado = 0; se (Media >= 7.0) { Aprovado = 1; ++ContadorAprovados; senão Aprovado = 0; se (Media >= 7.0 e Faltas <= 9) { Aprovado = 1; ++ContadorAprovados; senão { Aprovado = 0; ++ContadorReprovados; Exemplos de comandos condicionais INVÁLIDOS: se Media >= 7.0 Aprovado = 1; (faltou colocar parênteses na condição) se (Media >= 7.0) { Aprovado = 1; ++ContadorAprovados; (faltou colocar o delimitador de fim { no final do comando ) se (Media >= 7.0) Aprovado = 1 senão Aprovado = 0; (faltou ; depois do comando Aprovado = 1) se (Media >= 7.0) { Aprovado = 1; ++ContadorAprovados; senão Aprovado = 0 (novamente faltou ; após o comando Aprovado = 0)

26 se (Media >= 7.0 e Faltas <= 9) { Aprovado = 1; ++ContadorAprovados; senão Aprovado = 0; ++ContadorReprovados; (faltou o delimitador { após o senão) 26 se (Media >= 7.0) Aprovado = 1; ++ContadorAprovados; senão Aprovado = 0 (faltaram os delimitadores { após a condição do comando se antes do senão) 3.8. Comando de Repetição O comando de repetição permite que um comando ou um bloco de comandos seja executado diversas vezes. O número de vezes é determinado por uma condição que é constantemente avaliada. Enquanto a condição for avaliada como verdadeira (ou diferente de zero), o comando ou bloco de comandos é executado repetidamente; quando a condição fica falsa, o comando de repetição pára. A associação do comando de repetição com fatos rotineiros é possível: Enquanto o número da casa for menor que o procurado, continue subindo a rua e verificando se é a casa procurada, neste exemplo, a pessoa avalia a condição que é a verificação do número desejado entre diversas casas de uma rua, por exemplo; essa avaliação continua até que a casa procurada seja encontrada ou que se encontre uma casa cujo número seja superior ao procurado, supondo que a numeração esteja em ordem crescente. A sintaxe do comando de repetição é: enquanto (condição) { <bloco de comandos> A semântica (como funciona) do comando de repetição é: 1. A condição é avaliada como VERDADEIRA (diferente de zero) ou FALSA (igual a zero); 2. Se a condição for VERDADEIRA, o <bloco de comandos> é executado e, ao se chegar ao delimitador de fim ou final do comando, automaticamente se retorna à avaliação da condição; 3. Se a condição for FALSA, o comando de repetição é finalizado. Dentre os comandos do <bloco de comandos> é ESSENCIAL que exista um comando que altere a <condição> que é constantemente avaliada, pois, caso contrário, o comando enquanto NUNCA TERMINARÁ! Os delimitadores { e são obrigatórios quando existe mais de um comando no <bloco de comandos>. Quando existir apenas um comando, os delimitadores ficam opcionais e o ; funcionará como delimitador de fim, indicando o final do comando enquanto.

27 Exemplos de comandos de repetição válidos: enquanto (Contador < 3) ++Contador; 27 enquanto (Numero <= 10) { se (Numero % 2 == 0) ++ContaPar; senão ++ContaImpar; Numero = Numero + 3; Exemplos de comandos de repetição INVÁLIDOS: enquanto Contador <= 10 ++Contador; (faltaram parênteses na condição) enquanto (Numero <= 10) { se (Numero % 2 == 0) ++ContaPar; senão ++ContaImpar; Numero = Numero + 3; (faltou colocar o delimitador fim após o último comando...) enquanto (Numero <= 10) se (Numero % 2 == 0) ++ContaPar; senão ++ContaImpar; Numero = Numero + 3; ( como não existem os delimitadores de início e fim {, somente o comando se faz parte do comando enquanto e como o comando se não altera a variável Numero, o comando enquanto nunca vai parar!) enquanto (Numero <= 10); { se (Numero % 2 == 0) ++ContaPar; senão ++ContaImpar; Numero = Numero + 3; ( como foi colocado ; após a condição, o comando enquanto foi finalizado, a variável Numero não será alterada e o comando enquanto nunca vai parar!)

28 3.9. Comandos de Entrada e Saída 28 O comando de entrada permite que o usuário possa fornecer valores ao programa, através do teclado, que serão armazenados nas variáveis. O comando de saída permite que informações e valores de variáveis possam ser enviados ao usuário pela tela do monitor. É dessa forma que se consegue estabelecer um diálogo com o usuário. Se o programa deseja saber o nome do usuário, por exemplo, usa-se o comando de saída para fazer a pergunta Qual é o seu nome? e usa-se o comando de entrada para obter a resposta e armazená-la numa variável. A sintaxe do comando de entrada é: leia( %letra, [&] variável); em que: %letra representa os especificadores de formato e depende do tipo associado à variável: %d ou %i para variáveis do tipo inteiro %f para variáveis do tipo real %c para variáveis do tipo caracter (único) %s para variáveis do tipo caracter (cadeia ou string) O símbolo & deve ser utilizado apenas para os tipos numéricos, ou seja, para variáveis declaradas como inteiro ou real. A semântica (como funciona) do comando de entrada é: 1. A variável tem que ter sido previamente declarada; 2. O usuário vai se utilizar do teclado para fornecer o dado e, depois que ele teclar <ENTER>, tudo o que ele tiver digitado será armazenado na variável automaticamente. Recomenda-se utilizar o comando leia para ler uma só <variável> de cada vez. de leitura. A tabela abaixo mostra um exemplo de declaração de variáveis de tipos básicos e a forma correta Declaração Leitura Exemplos de conteúdos inteiro numero; leia( %i, &numero); numero = -5; numero = 2002; real valor; leia( %f, &valor); valor = ; valor = ; caracter car; leia( %c, car); car = 5 ; car = s ; car = # ; caracter nome[20]; leia( %s, nome); nome = Maria ; numero = fim ; Observe na tabela a diferença entre a declaração, leitura e atribuição de valores a um caracter único (%c) e a uma cadeia de caracteres (%s). Um único caracter vem entre apóstrofos e uma cadeia entre aspas!

29 A sintaxe do comando de saída é: 29 imprima( frase e %letra [, lista de variáveis] ); Entre podem ser escritas frases formadas por palavras intercaladas pelos especificadores de formato %s, %c, %i, %d ou %f descritos no comando leia. Para cada especificador utilizado, a variável do tipo correspondente deve constar da lista de variáveis. A lista de variáveis é opcional; deve existir somente quando um especificador de formato é colocado na frase entre aspas e, neste caso, deve haver uma vírgula separando a frase da lista de variáveis e vírgulas separando as variáveis da lista. A semântica (como funciona) do comando de saída é: 1. Pode ser impressa qualquer frase e qualquer variável dentro de um comando imprima, desde que a frase esteja entre aspas e as variáveis estejam devidadmente listadas após a vírgula que separa a frase da lista de variáveis; 2. A frase entre aspas é copiada integralmente para a tela e os especificadores de formato são substituídos pelas variáveis da lista de variáveis; 1. Quando existe uma variável, o seu conteúdo é copiado para a tela; 2. A ordem em que as palavras da frase e as variáveis aparecem no comando imprima é mantida quando é impressa na tela. Exemplos de comandos de entrada e saída válidos: imprima ( Qual é o seu nome? ); leia( %s,nome); imprima ( Qual é a sua idade? ); leia ( %i,&idade); imprima ( Qual é a sua altura? ); leia ( %f,&altura); imprima ( Qual é o seu sexo? (F/M) ); leia ( %c,sexo); imprima ( O seu nome é: %s e você tem %i anos,nome, idade); imprima ( Você foi aprovado no curso com média= %f, Media);

30 Exemplos de comandos de entrada e saída INVÁLIDOS: imprima ( Qual é o seu nome? ); (faltaram aspas após a interrogação para delimitar a frase a ser impressa) 30 imprima ( Qual é a sua idade? ); leia ( %i,idade); (faltou o & antes do identificador idade, pois o tipo é numérico: %i) imprima ( A sua idade é %i idade); (faltou uma vírgula entre a frase entre aspas e a variável idade) imprima ( Você foi aprovado no curso com média=, Media); (faltou o especificador de formato da variável Media (%f) após o = na frase entre aspas) imprima ( Qual é o seu nome? ); leia ( %s,&nome); (não pode haver & na leituras de variáveis do tipo caracter (%c e %s) ) Separador de comandos Todos os comandos do PortuCê são separados por ponto-e-vírgula. O separador de comandos é: ; Exemplos de erro na separação de comandos: se (resposta!= s ); { <comandos> (o ; depois da condição finaliza o comando se ) enquanto (contador < 5) ; { <comandos> (o ; depois da condição do comando enquanto coloca o programa em loop infinito!)

31 3.11. Bloco de Programa 31 Bloco de programa é o nome que se dá à estrutura de um programa escrito numa determinada linguagem. O bloco de programa em PortuCê pode ser visto abaixo. O Bloco de Programa em PortuCê tem a forma: /* comentários */ <declaração de variáveis>; principal() { <bloco de comandos>; Todo algoritmo escrito em PortuCê deve começar com um comentário dizendo o que o programa faz. Em seguida devem ser declaradas todas as variáveis que serão utilizadas no <bloco de comandos>. Após a declaração das variáveis deve-se escrever a palavra principal( ), que delimita a seção em que os comandos podem ser utilizados. O <bloco de comandos> pode conter todos os comandos válidos em PortuCê, separados por ; e estes devem estar contidos entre os delimitadores { e. Nenhum comando pode ser usado fora desta seção. É importante notar que letras maiúsculas e minúsculas alteram os identificadores e as palavras reservadas do PortuCê. Exemplos de programas escritos em PortuCê válidos: /* sexo.c: le o nome e o sexo de uma pessoa e imprime uma frase dizendo se é masculino, feminino ou invalido */ caracter nome[20], sexo; principal ( ) { imprima ( Qual eh o seu nome? ); leia( %s,nome); imprima ( Qual eh o seu sexo? (f/m) ); leia ( %c,sexo); se (sexo == f ou sexo == F ) imprima ( %s voce eh do sexo feminino.,nome); senão se (sexo == m ou sexo == M ) imprima ( %s voce eh do sexo masculino.,nome); senão imprima ( Voce digitou um sexo invalido ); imprima( Fim do programa. );

32 /* idade.c: le o ano atual e o ano de nascimento de uma pessoa e imprime uma frase dizendo qual eh a idade da pessoa */ 32 inteiro anoatual, anonasc, idade; principal() { imprima ( Qual eh o ano atual? ); leia( %i,&anoatual); imprima ( Qual eh o seu ano de nascimento? ); leia ( %i,&anonasc); idade = anoatual anonasc; imprima ( Voce fez ou fara %i anos, idade); imprima( Fim do programa. ); /* parimpar.c: le um numero e verifica se ele eh par ou impar */ inteiro n; principal() { imprima ( Digite um numero inteiro: ); leia( %i,&n); se (n % 2 == 0) imprima ( O numero %i eh par, n); senão imprima ( O numero %i eh impar, n); imprima( Fim do programa. ); /* nota.c: le a nota de um aluno e verifica se ele foi aprovado ou reprovado */ real nota; principal() { imprima ( Digite sua nota final: ); leia( %f,&nota); se (nota >= 6.0) imprima ( Voce foi aprovado! ); senão imprima ( Voce foi reprovado... ); imprima( Fim do programa. );

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação 1 Estruturas de dados Representação computacional das informações do problema ser resolvido Informações podem ser de

Leia mais

Linguagem algorítmica: Portugol

Linguagem algorítmica: Portugol Programação de Computadores I Aula 03 Linguagem algorítmica: Portugol José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/34 Introdução I Lógica A lógica é usada

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados 1. Objetivos Falar sobre programa de computador, diferenciando programa em linguagem de máquina, de programa em

Leia mais

Algoritmos Computacionais ( Programas )

Algoritmos Computacionais ( Programas ) Algoritmos Computacionais ( Programas ) A partir deste tópico, consideramos a utilização do universo Computacional na solução de problemas. Para tanto devemos lembrar que a transposição de problemas do

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Algoritmos com VisuAlg

Algoritmos com VisuAlg Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

Aluísio Eustáquio da Silva

Aluísio Eustáquio da Silva 1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que

Leia mais

Curso de Programação Computadores

Curso de Programação Computadores 3 O Primeiro Programa em C Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 3 O Primeiro Programa em C 3.1 - Introdução Depois dos conceitos

Leia mais

Algoritmos e Programação de Computadores

Algoritmos e Programação de Computadores Algoritmos e Programação de Computadores Algoritmos Estrutura Sequencial Parte 1 Professor: Victor Hugo L. Lopes Agenda Etapas de ação do computador; TDP Tipos de Dados Primitivos; Variáveis; Constantes;

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

A4 Projeto Integrador e Lista de Jogos

A4 Projeto Integrador e Lista de Jogos A4 Projeto Integrador e Lista de Jogos 1ª ETAPA PROJETO INTEGRADOR (2 pontos na A4) Como discutido em sala de aula, a disciplina de algoritmos I também fará parte do projeto integrador, para cada grupo

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

PROGRAMAÇÃO DE COMPUTADORES (Teoria) PC PROGRAMAÇÃO DE COMPUTADORES (Teoria) Aula 01 Prof. Ricardo Veras (prof.rveras@gmail.com) ALGORITMOS "Seqüência ordenada de passos, que deve ser seguida para a realização de um tarefa" "Algoritmo é um

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Conceitos Importantes:

Conceitos Importantes: Conceitos Importantes: Variáveis: Por Flávia Pereira de Carvalho, 2007 i O bom entendimento do conceito de variável é fundamental para elaboração de algoritmos, consequentemente de programas. Uma variável

Leia mais

O modelo do computador

O modelo do computador O modelo do computador Objetivos: Mostrar como é o funcionamento dos computadores modernos Mostrar as limitações a que estamos sujeitos quando programamos Histórico Os primeiros computadores são da década

Leia mais

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo INF01040 Introdução à Programação Introdução à Lógica de Programação s Seqüenciais Sumário Elaboração de um programa/algoritmo Formas de representação de um algoritmo Elementos manipulados em um programa/algoritmo

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

2 Um Primeiro Programa em C

2 Um Primeiro Programa em C 2 Um Primeiro Programa em C Ronaldo F. Hashimoto, Carlos H. Morimoto e José A. R. Soares OobjetivodessaaulaéintroduzirvocêàlinguagemCemambienteLinux,primeiramentemostrandoasua estrutura, e a seguir com

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Convertendo Algoritmos para a Linguagem C

Convertendo Algoritmos para a Linguagem C onvertendo Algoritmos para a Linguagem Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan O objetivo deste texto é mostrar alguns programas em, dando uma breve descrição de seu funcionamento

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

Lição 1 Introdução à programação de computadores

Lição 1 Introdução à programação de computadores Lição Introdução à programação de computadores Introdução à Programação I Objetivos Ao final desta lição, o estudante será capaz de: Identificar os diferentes componentes de um computador Conhecer linguagens

Leia mais

Introdução a Algoritmos Parte 04

Introdução a Algoritmos Parte 04 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Operadores, expressões e funções Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Operadores básicos Toda linguagem de programação, existem

Leia mais

Tutorial de Matlab Francesco Franco

Tutorial de Matlab Francesco Franco Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada

Leia mais

ICC Introdução para JavaScript

ICC Introdução para JavaScript ICC Introdução para JavaScript Arquitetura Genérica de um Computador Máquina de Von Neumann Diagrama conhecido como Máquina de Von Neumann (grande nome da informática) A finalidade de um computador é receber,

Leia mais

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS 1 PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS INTRODUÇÃO O processamento interno do CLP é digital e pode-se, assim, aplicar os conceitos de lógica digital para compreen8 der as técnicas e as linguagens

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

20 Caracteres - Tipo char

20 Caracteres - Tipo char 0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Estruturas de Controle A Tomada de Decisões

Estruturas de Controle A Tomada de Decisões Estruturas de Controle A Tomada de Decisões Foi visto anteriormente como trabalhar com entrada, processamento e saída utilizando variáveis, constantes e operadores aritméticos. Apesar de já se conseguir

Leia mais

13 Números Reais - Tipo float

13 Números Reais - Tipo float 13 Números Reais - Tipo float Ronaldo F. Hashimoto e Carlos H. Morimoto Até omomentonoslimitamosaouso do tipo inteiro para variáveis e expressões aritméticas. Vamos introduzir agora o tipo real. Ao final

Leia mais

LINGUAGEM C UMA INTRODUÇÃO

LINGUAGEM C UMA INTRODUÇÃO LINGUAGEM C UMA INTRODUÇÃO AULA 1 Conceitos muito básicos 1 Introdução O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Curso de Linguagem C

Curso de Linguagem C Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...

Leia mais

Aula 02 Excel 2010. Operações Básicas

Aula 02 Excel 2010. Operações Básicas Aula 02 Excel 2010 Professor: Bruno Gomes Disciplina: Informática Básica Curso: Gestão de Turismo Sumário da aula: 1. Operações básicas; 2. Utilizando Funções; 3. Funções Lógicas; 4. Gráficos no Excel;

Leia mais

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1 Linguagem C: Estruturas de Controle Prof. Leonardo Barreto Campos 1 Sumário Estrutura de Controle e de Fluxo Comandos de Seleção: O comando if; Ifs Aninhados; A escada if-else-if; A expressão condicional;

Leia mais

Programação de Computadores. Professor Ilaim Costa Junior ilaim@ic.uff.br Www.ic.uff.br/~ilaim

Programação de Computadores. Professor Ilaim Costa Junior ilaim@ic.uff.br Www.ic.uff.br/~ilaim Programação de Computadores Professor Ilaim Costa Junior ilaim@ic.uff.br Www.ic.uff.br/~ilaim Roteiro da Aula de Hoje Introdução ao FORTRAN (Parte I) Organização de programas Tipos de dados Variáveis Programação

Leia mais

Programação de Computadores III

Programação de Computadores III Programação de Computadores III Introdução a Linguagens de Programação Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157

Leia mais

Programação WEB I Estruturas de controle e repetição

Programação WEB I Estruturas de controle e repetição Programação WEB I Estruturas de controle e repetição Operadores de Incremento Operadores de incremento servem como expressões de atalho para realizar incrementos em variáveis Operadores de Incremento Vamos

Leia mais

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme AULA 2: INTRODUÇÃO A LINGUAGEM DE C Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Agenda Introdução a linguagem C Compiladores Variáveis IDEs Exemplos Exercícios Introdução A Linguagem C

Leia mais

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++ ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++ #include { Este trecho é reservado para o corpo da função, com a declaração de suas variáveis locais, seus comandos e funções

Leia mais

Introdução ao FORTRAN (Parte I)

Introdução ao FORTRAN (Parte I) Programação de Computadores III Aula 7 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula

Leia mais

Programação Elementar de Computadores Jurandy Soares

Programação Elementar de Computadores Jurandy Soares Programação Elementar de Computadores Jurandy Soares Básico de Computadores Computador: dispositivos físicos + programas Dispositivos físicos: hardware Programas: as instruções que dizem aos dispositivos

Leia mais

ALGORITMOS E FLUXOGRAMAS

ALGORITMOS E FLUXOGRAMAS ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Estruturas de Repetição

Estruturas de Repetição Estruturas de Repetição Lista de Exercícios - 04 Linguagem e Técnicas de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação 1 Algoritmo Prof. Anderson Almeida Ferreira Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação Desenvolvimento de programas 2 Análise do problema Desenvolvimento

Leia mais

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma Roteiro: Conceitos básicos de algoritmo, linguagem, processador de linguagem e ambiente de programação; Aspectos fundamentais da organização e do funcionamento de um computador; Construções básicas de

Leia mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior Armazenamento de Dados Prof. Antonio Almeida de Barros Junior 1 Armazenamento de Dados Todos os dados que utilizamos até o momento, ficavam armazenados apenas na memória. Ao final da execução dos programas,

Leia mais

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Processamento da Informação Teoria. Algoritmos e Tipos de dados Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo

Leia mais

Introdução aos cálculos de datas

Introdução aos cálculos de datas Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para

Leia mais

Prof. Esp. Adriano Carvalho

Prof. Esp. Adriano Carvalho Prof. Esp. Adriano Carvalho O que é um Programa? Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais

Leia mais

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes FUNÇÕES E PROCEDIMENTOS Também chamados de subalgoritmos São trechos de algoritmos

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados) 1 UNIVERSIDADE DO CONTESTADO / UnC CAMPUS CONCÓRDIA/SC CURSO DE SISTEMAS DE INFORMAÇÃO Fundamentos em Informática (Sistemas de Numeração e Representação de Dados) (Apostila da disciplina elaborada pelo

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior vilson.junior@ifsc.edu.br Felipe Schneider Costa felipe.costa@ifsc.edu.

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior vilson.junior@ifsc.edu.br Felipe Schneider Costa felipe.costa@ifsc.edu. VisuALG Estruturas de Repetição Professores: Vilson Heck Junior vilson.junior@ifsc.edu.br Felipe Schneider Costa felipe.costa@ifsc.edu.br O Problema. Estruturas de Repetição: Introdução; Repita ate; Exemplo;

Leia mais

Introdução às Linguagens de Programação

Introdução às Linguagens de Programação Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador

Leia mais

Introdução à Programação e Algoritmos. Aécio Costa

Introdução à Programação e Algoritmos. Aécio Costa Aécio Costa Programação é a arte de fazer com que o computador faça exatamente o que desejamos que ele faça. O que é um Programa? Uma seqüência de instruções de computador, para a realização de uma determinada

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

Leia mais

COMPILADORES E INTERPRETADORES

COMPILADORES E INTERPRETADORES Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

José Romildo Malaquias 2011-1

José Romildo Malaquias 2011-1 Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor

Leia mais

Princípios de funcionamento dos computadores

Princípios de funcionamento dos computadores Princípios de funcionamento dos computadores Objetivos da aula: - Entender o princípio de funcionamento dos computadores - Entender o conceito de programa e sua dinâmica de execução Tópicos da aula: -

Leia mais

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição 1 Estrutura de seleção Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição - Necessário quando mais de uma ação deve ser tomada se uma condição for satisfeita

Leia mais

ESTRUTURA CONDICIONAL

ESTRUTURA CONDICIONAL AULA 6 ESTRUTURA CONDICIONAL 130 Tem como objetivo executar um conjunto de comandos caso uma condição lógica seja atendida. Quando a resposta lógica for falsa, nada será executado. Sintaxe Se CONDIÇÃO

Leia mais

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos. 3 COMANDOS CONDICIONAIS E DE LAÇO Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos. 3.1 COMANDOS CONDICIONAIS 3.1.1 Comando IF Como o próprio nome já indica, estes comandos

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais

Dicas para usar melhor o Word 2007

Dicas para usar melhor o Word 2007 Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.

Leia mais

Aula 2 Modelo Simplificado de Computador

Aula 2 Modelo Simplificado de Computador Aula 2 Modelo Simplificado de Computador Um computador pode ser esquematizado de maneira bastante simplificada da seguinte forma: Modelo Simplificado de Computador: Memória Dispositivo de Entrada Processador

Leia mais