Linguagem de Programação C

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

Download "Linguagem de Programação C"

Transcrição

1 Linguagem de Programação C

2 Esta apostila foi elaborada a partir da versão.doc da apostila que foi foi elaborada por Henrique José dos Santos (Eng. da Computação, UNISANTOS, Santos SP) e posteriormente utilizada pela UFMG e atualmente mantida por pelo professor Renato Cardoso Mesquita Alguns capítulos foram modificados e/ou inseridos pelos professores Roberto Teixeira Alves e Rodrigo Janasievicz Gomes Pinheiro para atender o conteúdo que desejamos abordar no curso de extensão da UTFPR.

3 ÍNDICE 1. INTRODUÇÃO VISÃO GERAL DE UM PROGRAMA C SINTAXE O C É "CASE SENSITIVE" PALAVRAS RESERVADAS DO C IDENTIFICADORES TIPOS DECLARAÇÃO E INICIALIZAÇÃO DE VARIÁVEIS CONSTANTES CARACTERES DE CONTROLE DA LINGUAGEM C INSTRUÇÕES OPERADORES ARITMÉTICOS OPERADORES RELACIONAIS E LÓGICOS OPERADORES LÓGICOS BIT A BIT EXPRESSÕES TABELA DE PRECEDÊNCIAS DO C ESPAÇAMENTO E PARÊNTESES ESTRUTURA DE UM PROGRAMA EM C FUNÇÕES BÁSICAS DE ENTRADA E SAÍDA FUNÇÃO PRINTF( ) (BIBLIOTECA STDIO.H) DOIS PRIMEIROS PROGRAMAS ESTRUTURAS DE CONTROLE COMANDO SIMPLES BLOCO DE COMANDOS ESTRUTURAS DE SELEÇÃO ESTRUTURAS DE REPETIÇÃO VETORES, MATRIZES E STRING VETORES STRINGS MATRIZES PONTEIROS INTRODUÇÃO COMO FUNCIONAM OS PONTEIROS DECLARAÇÃO DE PONTEIROS OPERADORES & E * PROBLEMAS NO USO DE PONTEIROS OPERAÇÕES ELEMENTARES COM PONTEIROS PONTEIROS E VETORES PONTEIROS E STRINGS VETORES DE PONTEIROS PONTEIROS PARA PONTEIROS FUNÇÕES... 57

4 7.1. VALORES DE RETORNO POR FUNÇÕES LOCALIZAÇÃO DAS FUNÇÕES ESCOPO DE VARIÁVEIS PASSAGEM POR VALOR PASSAGEM POR REFERÊNCIA PASSANDO VETORES PARA FUNÇÕES PASSAGEM DE MATRIZ PARA FUNÇÃO RECURSIVIDADE ARGUMENTOS ARGC E ARGV DO MAIN DIRETIVAS DE COMPILAÇÃO A DIRETIVA INCLUDE AS DIRETIVAS DEFINE E UNDEF AS DIRETIVAS IFDEF E ENDIF A DIRETIVA IFNDEF A DIRETIVA IF A DIRETIVA ELSE A DIRETIVA ELIF MANIPULAÇÃO DE ARQUIVOS INTRODUÇÃO LENDO E ESCREVENDO CARACTERES EM ARQUIVOS OUTROS COMANDOS DE ACESSO A ARQUIVOS FLUXOS PADRÃO TIPOS DE DADOS AVANÇADOS MODIFICADORES DE ACESSO CONVERSÃO DE TIPOS MODIFICADORES DE FUNÇÕES PONTEIROS PARA FUNÇÕES ALOCAÇÃO DINÂMICA ALOCAÇÃO DINÂMICA DE VETORES E MATRIZES TIPOS DE DADOS DEFINIDOS PELO USUÁRIO ESTRUTURAS - PRIMEIRA PARTE ESTRUTURAS - SEGUNDA PARTE DECLARAÇÃO UNION ENUMERAÇÕES O COMANDO SIZEOF O COMANDO TYPEDEF UMA APLICAÇÃO DE STRUCTS: AS LISTAS SIMPLESMENTE ENCADEADAS CONCEITOS BÁSICOS DE C O QUE É PROGRAMAÇÃO ORIENTADA À OBJETOS? CARACTERÍSTICAS PRINCIPAIS DE UMA LINGUAGEM ORIENTADA AO OBJETO ELEMENTOS DA LINGUAGEM C

5 1. INTRODUÇÃO Um programa de computador é um conjunto instruções que representam um algoritmo para a resolução de algum problema. Estas instruções são escritas através de um conjunto de códigos (símbolos e palavras). Este conjunto de códigos possui regras de estruturação lógica e sintática própria. Dizemos que este conjunto de símbolos e regras formam uma linguagem de programação. Podemos dividir, genericamente, as linguagens de programação em dois grandes grupos: as linguagens de baixo nível e as de alto nível: Linguagens de baixo nível: São linguagens voltadas para a máquina, isto é, são escritas usando as instruções do microprocessador do computador. São genericamente chamadas de linguagens Assembly. Vantagens: Programas são executados com maior velocidade de processamento. Os programas ocupam menos espaço na memória. Desvantagens: Em geral, programas em Assembly têm pouca portabilidade, isto é, um código gerado para um tipo de processador não serve para outro. Códigos Assembly não são estruturados, tornando a programação mais difícil. Linguagens de alto nível: São linguagens voltadas para o ser humano. Em geral utilizam sintaxe estruturada tornando seu código mais legível. Necessitam de compiladores ou interpretadores para gerar instruções do microprocessador. Interpretadores fazem a interpretação de cada instrução do programa fonte executando a dentro de um ambiente de programação, Basic e AutoLISP por exemplo. Compiladores fazem a tradução de todas as instruções do programa fonte gerando um programa executável. Estes programas executáveis (*.exe) podem ser executados fora dos ambientes de programação, C e Pascal por exemplo. As linguagens de alto nível podem se distinguir quanto a sua aplicação em genéricas como C, Pascal e Basic ou específicas como Fortran (cálculo matemático), GPSS (simulação), LISP (inteligência artificial) ou CLIPPER (banco de dados). Vantagens: Por serem compiladas ou interpretadas, tem maior portabilidade podendo ser executados em varias plataformas com pouquíssimas modificações. Em geral, a programação tornase mais fácil por causa do maior ou menor grau de estruturação de suas linguagens. Desvantagens: Em geral, as rotinas geradas (em linguagem de maquina) são mais genéricas e portanto mais complexas e por isso são mais lentas e ocupam mais memória. Mas o que é C? C é o nome de uma linguagem atualmente utilizada em diferentes áreas e propósitos. Faz parte hoje de uma linguagem considerada avançada, desenvolvida nos laboratórios Bell nos anos 70. A definição formal da linguagem pode ser encontrada no livro The C Programming Language de Brian W. Kernighan e Dennis M. Ritchie (os pais da linguagem). Nos anos 80 iniciou se 5

6 um trabalho de criação de um padrão chamado C ANSI (American National Standardization Institute). É uma linguagem de nível médio, pois pode se trabalhar em um nível próximo ao da máquina ou como uma linguagem de alto nível como outras existentes. Com o C podemos escrever programas concisos, organizados e de fácil entendimento, mas infelizmente a falta de disciplina pode gerar programas mal escritos, difíceis de serem lidos e compreendidos. Não se deve esquecer que C é uma linguagem para programadores, pois impõe poucas restrições ao que pode ser feito. O C é amigável e estruturado para encorajar bons hábitos de programação; cabe ao programador exercitar esses hábitos. A necessidade de escrever programas, que façam uso de recursos da linguagem de máquina de uma forma mais simples e portátil, fez com que a principal utilização do C fosse a reescrita do sistemas operacional UNIX e deu origem a outras linguagens de programação, entre elas a linguagem C++ e Java. Sua indicação é principalmente no desenvolvimento de programas, tais como: compiladores, interpretadores, editores de texto; banco de dados. Computação gráfica, manipulação e processamento de imagens, controle de processos, Principais características da linguagem C a serem ponderadas: Portabilidade Geração de códigos executáveis compactos e rápidos Interação com o sistema operacional Facilidade de uso (através de ambientes como o Borland C++ 5.0) Linguagem estruturada Confiabilidade Simplicidade 1.1. Visão geral de um programa C A geração do programa executável a partir do programa fonte obedece a uma seqüência de operações antes de tornar se um executável. Depois de escrever o módulo fonte em um editor de textos, o programador aciona o compilador que no UNIX é chamado pelo comando cc. Essa ação desencadeia uma seqüência de etapas, cada qual traduzindo a codificação do usuário para uma forma de linguagem de nível inferior, que termina com o executável criado pelo lincador. 6

7 Editor (módulo fonte em C) Pré processador (novo fonte expandido) Compilador (arquivo objeto) Lincador (executável) 7

8 2. Sintaxe A sintaxe são regras detalhadas para cada construção válida na linguagem C. Estas regras estão relacionadas com os tipos, as declarações, as funções e as expressões. Os tipos definem as propriedades dos dados manipulados em um programa. As declarações expressam as partes do programa, podendo dar significado a um identificador, alocar memória, definir conteúdo inicial, definir funções. As funções especificam as ações que um programa executa quando roda. A determinação e alteração de valores, e a chamada de funções de entrada e saída (imput/output I/O) são definidas nas expressões. As funções são as entidades operacionais básicas dos programas em C, que por sua vez são a união de uma ou mais funções executando cada qual o seu trabalho. Há funções básicas que estão definidas na biblioteca C. As funções printf() e scanf() por exemplo, permitem respectivamente escrever na tela e ler os dados a partir do teclado. O programador também pode definir novas funções em seus programas, como rotinas para cálculos, impressão, etc. Todo programa C inicia sua execução chamando a função main(), sendo obrigatória a sua declaração no programa principal. Comentários no programa são colocados entre /* e */ não sendo considerados na compilação. Cada instrução encerra com ; (ponto e vírgula) que faz parte do comando. Exemplo: main() /* função obrigatória */ { printf("oi"); 2.1. O C é "Case Sensitive" Vamos começar o nosso curso ressaltando um ponto de suma importância: o C é "Case Sensitive", isto é, maiúsculas e minúsculas fazem diferença. Se declarar uma variável com o nome soma ela será diferente de Soma, SOMA, SoMa ou soma. Da mesma maneira, os comandos do C if e for, por exemplo, só podem ser escritos em minúsculas pois senão o compilador não irá interpretá los como sendo comandos, mas sim como variáveis. 8

9 2.2. Palavras Reservadas do C Todas as linguagens de programação têm palavras reservadas. As palavras reservadas não podem ser usadas a não ser nos seus propósitos originais, isto é, não podemos declarar funções ou variáveis com os mesmos nomes. Como o C é "case sensitive" podemos declarar uma variável For, apesar de haver uma palavra reservada for, mas isto não é uma coisa recomendável de se fazer pois pode gerar confusão. Apresentamos a seguir as palavras reservadas do ANSI C. Veremos o significado destas palavras chave à medida que o curso for progredindo: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 2.3. Identificadores São utilizados para dar nomes a constantes, variáveis, funções e vários objetos definidos pelo usuário. As regras para formação desses nomes são: Todo identificador deve iniciar por uma letra (a..z ou A..Z) ou um sublinhado Não pode conter símbolos especiais. Após o primeiro caracter pode ser utilizado: letras, sublinhados e/ou dígitos. Utiliza se identificadores de, no máximo, 32 caracteres por estes serem significativos. Não pode ser palavra reservada e nem nome de funções de bibliotecas Tipos Quando você declara um identificador dá a ele um tipo. O C tem 5 tipos básicos: char, int, float, void, double. Objetos do tipo char representam caracteres, objetos do tipo int representam valores inteiros e objetos do tipo float representam números reais (ponto flutuante). O double é o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais precisão. O void é o tipo vazio, ou um "tipo sem tipo". A aplicação deste "tipo" será vista posteriormente. 9

10 Para cada um dos tipos de variáveis existem os modificadores de tipo. Os modificadores de tipo do C são quatro: signed, unsigned, long e short. Ao float não se pode aplicar nenhum e ao double pode se aplicar apenas o long. Os quatro modificadores podem ser aplicados a inteiros. A intenção é que short e long devam prover tamanhos diferentes de inteiros onde isto for prático. Inteiros menores (short) ou maiores (long). int normalmente terá o tamanho natural para uma determinada máquina. Assim, numa máquina de 16 bits, int provavelmente terá 16 bits. Numa máquina de 32 bits, int deverá ter 32 bits. Na verdade, cada compilador é livre para escolher tamanhos adequados para o seu próprio hardware, com a única restrição de que shorts ints e ints devem ocupar pelo menos 16 bits, longs ints pelo menos 32 bits, e short int não pode ser maior que int, que não pode ser maior que long int. O modificador unsigned serve para especificar variáveis sem sinal. Um unsigned int será um inteiro que assumirá apenas valores positivos. A seguir estão listados os tipos de dados permitidos e seu valores máximos e mínimos em um compilador típico para um hardware de 16 bits. Também nesta tabela está especificado o formato que deve ser utilizado para ler os tipos de dados com a função scanf(): Tipo Num de bits Formato para leitura com scanf Inicio Intervalo Fim char 8 %c unsigned char 8 %c signed char 8 %c Int 16 %i unsigned int 16 %u signed int 16 %i short int 16 %hi unsigned short int 16 %hu signed short int 16 %hi long int 32 %li signed long int 32 %li unsigned long int 32 %lu float 32 %f 3,4E E+38 double 64 %lf 1,7E 308 1,7E+308 long double 80 %Lf 3,4E ,4E+4932 O tipo long double é o tipo de ponto flutuante com maior precisão. É importante observar que os intervalos de ponto flutuante, na tabela acima, estão indicados em faixa de expoente, mas os números podem assumir valores tanto positivos quanto negativos Declaração e Inicialização de Variáveis As variáveis no C devem ser declaradas antes de serem usadas. A forma geral da declaração de variáveis é: tipo_da_variável lista_de_variáveis; 10

11 As variáveis da lista de variáveis terão todas o mesmo tipo e deverão ser separadas por vírgula. Como o tipo default do C é o int, quando vamos declarar variáveis int com algum dos modificadores de tipo, basta colocar o nome do modificador de tipo. Assim um long basta para declarar um long int. Por exemplo, as declarações char ch, letra; long count; float pi; declaram duas variáveis do tipo char (ch e letra), uma variável long int (count) e um float pi. Onde as variáveis podem ser declaradas Há três lugares nos quais podemos declarar variáveis. O primeiro é fora de todas as funções do programa. Estas variáveis são chamadas variáveis globais e podem ser usadas a partir de qualquer lugar no programa. Pode se dizer que, como elas estão fora de todas as funções, todas as funções as vêem. Estas variáveis são alocadas estaticamente na memória RAM. O segundo lugar no qual se pode declarar variáveis é no início de um bloco de código. Estas variáveis são chamadas locais e só têm validade dentro do bloco no qual são declaradas, isto é, só a função à qual ela pertence sabe da existência desta variável, dentro do bloco no qual foram declaradas. Estas variáveis são alocadas dinamicamente na memória RAM. Depois que uma função é executada, estas variáveis são desalocadas. O terceiro lugar onde se pode declarar variáveis é na lista de parâmetros de uma função. Mais uma vez, apesar de estas variáveis receberem valores externos, estas variáveis são conhecidas apenas pela função onde são declaradas e também são alocadas dinamicamente na memória RAM. Veja o programa abaixo: #include <stdio.h> int contador; int func1(int j) { /* aqui viria o código da funcao... */ int main(){ char condicao; int i; for (i=0; i<100; i=i+1){ /* Bloco do for */ float f2; /* etc */ 11

12 func1(i); /* etc... */ return(0); A variável contador é uma variável global, e é acessível de qualquer parte do programa. As variáveis condicao e i, só existem dentro de main(), isto é são variáveis locais de main. A variável float f2 é um exemplo de uma variável de bloco, isto é, ela somente é conhecida dentro do bloco do for, pertencente à função main. A variável inteira j é um exemplo de declaração na lista de parâmetros de uma função (a função func1). As regras que regem onde uma variável é válida chamam se regras de escopo da variável. Há mais dois detalhes que devem ser ressaltados. Duas variáveis globais não podem ter o mesmo nome. O mesmo vale para duas variáveis locais de uma mesma função. Já duas variáveis locais, de funções diferentes, podem ter o mesmo nome sem perigo algum de conflito. Alocação de memória: Reserva de espaço de memória (RAM) para alocar uma variável. Alocação estática de memória: Tipo de alocação de memória em que uma variável é alocada (tem um espaço reservado) na memória RAM durante toda a execução do programa. Este espaço de memória é desalocado somente quando o programa acaba. Alocação dinâmica de memória: Tipo de alocação de memória em que uma variável é alocada (tem um espaço reservado) na memória RAM temporariamente. Este espaço de memória é desalocado quando o espaço não é mais necessário. Podemos inicializar variáveis no momento de sua declaração. Para fazer isto podemos usar a forma geral tipo_da_variável nome_da_variável = constante; Isto é importante pois quando o C cria uma variável ele não a inicializa. Isto significa que até que um primeiro valor seja atribuído à nova variável ela tem um valor indefinido e que não pode ser utilizado para nada. Nunca presuma que uma variável declarada vale zero ou qualquer outro valor. Exemplos de inicialização são dados abaixo : char ch='d'; int count=0; float pi=3.141; Ressalte se novamente que, em C, uma variável tem que ser declarada no início de um bloco de código. Assim, o programa a seguir não é válido em C (embora seja válido em C++). int main(){ int i; int j; j = 10; 12

13 int k = 20; /* Esta declaracao de variável não é válida, pois não está sendo feita no início do bloco */ return(0); 2.6. Constantes Muitas vezes identificamos uma constante numérica por um símbolo: Pi = 3,14159 por exemplo. Podemos definir um nome simbólico para esta constante, isto é, podemos definir uma constante simbólica que represente valor. O programador pode definir constantes simbólicas em qualquer programa, e sua sintaxe é a seguinte: #define nome valor onde #define é uma diretiva de compilação que diz ao compilador para trocar as ocorrências do texto nome por valor. Observe que não há ; no final da instrução pois se trata de um comando para o compilador e não para o processador. A instrução #define deve ser escrita antes da instrução de declaração da rotina principal. Exemplo: a seguir definimos algumas constantes simbólicas. #define PI #define ON 1 #define OFF 0 #define ENDERECO 0x378 int main(){... No exemplo acima, definimos PI como Isto significa que todas as ocorrências do texto PI será trocado por Assim se escrevemos uma instrução: área = PI * raio * raio; o compilador vai interpretar esta instrução como se fosse escrita assim: área = * raio * raio; Poderíamos escrever estas instruções assim: float pi = ; área = pi * área * área; porém este tipo de instrução tem duas desvantagens: Primeiro, reserva 4 bytes de memória desnecessariamente. Segundo, esta instrução é executada mais lentamente pois o processador precisa acessar a memória para verificar qual é o valor de pi. Observe também que no exemplo definimos os nomes simbólicos com letras maiúsculas. Isto não é necessário, podemos perfeitamente definir nomes simbólicos usando letras minúsculas, porém faz parte do jargão dos programadores C usar letras maiúsculas para definir constantes simbólicas. 13

14 O uso da diretiva #define não se restringe apenas ao apresentado acima, podemos usá la para definir macro instruções. Este uso será detalhado nas próximas seções. Constantes dos tipos básicos do C Tipo de Dado Exemplos de Constantes char 'b' '\n' '\0' int long int short int unsigned int float e 10 double Constantes octais e hexadecimais Muitas vezes precisamos inserir constantes hexadecimais (base dezesseis) ou octais (base oito) no nosso programa. O C permite que se faça isto. As constantes hexadecimais começam com 0x. As constantes octais começam em 0. Alguns exemplos: Constante Tipo 0xEF Constante Hexadecimal (8 bits) 0x12A4 Constante Hexadecimal (16 bits) Constante Octal (12 bits) Constante Octal (24 bits) Nunca escreva portanto 013 achando que o C vai compilar isto como se fosse 13. Na linguagem C 013 é diferente de 13! 2.7. Caracteres de controle da linguagem C Estes caracteres devem ser representados como caracteres alfanuméricos (entre ) ou como conteúdo de uma string. Código Significado \b Retrocesso ("back") \f Alimentação de formulário ("form feed") \n Nova linha ("new line") \t Tabulação horizontal ("tab") \" Aspas \' Apóstrofo \0 Nulo (0 em decimal) \\ Barra invertida 14

15 \v Tabulação vertical \a Sinal sonoro ("beep") \N Constante octal (N é o valor da constante) \xn Constante hexadecimal (N é o valor da constante) 2.8. Instruções Uma instrução em linguagem C é uma expressão seguida de um ponto e vírgula. Pode ser uma atribuição, uma chamada de função, um teste de desvio ou um teste de laço. Exemplo de instrução de atribuição: x = 12; onde o sinal de igual (=) é o operador de atribuição. Note se que o operando do lado esquerdo do operador de atribuição é sempre uma variável, e que o operando do lado direito deve ser de um tipo de dado compatível com o tipo da variável. A linguagem de programação C permite utilizar o operador de atribuição em expressões, junto com operadores matemáticos, lógicos, relacionais, chamada de funções, e outros. if ((produto = x * y) < 0) Funcionamento: Primeiramente C atribui o valor x * y a variável produto, para depois avaliar a expressão, ou seja, comparar se o produto é menor (<) que zero Operadores Aritméticos Os operadores aritméticos são usados para desenvolver operações matemáticas. A seguir apresentamos a lista dos operadores aritméticos do C: Operador Ação + Soma (inteira e ponto flutuante) - Subtração ou Troca de sinal (inteira e ponto flutuante) * Multiplicação (inteira e ponto flutuante) / Divisão (inteira e ponto flutuante) % Resto de divisão (de inteiros) ++ Incremento (inteiro e ponto flutuante) -- Decremento (inteiro e ponto flutuante) O C possui operadores unários e binários. Os unários agem sobre uma variável apenas, modificando ou não o seu valor, e retornam o valor final da variável. Os binários usam duas variáveis e retornam um terceiro valor, sem alterar as variáveis originais. A soma é um operador binário, pois pega duas variáveis, soma seus valores, sem alterar as variáveis, e retorna esta soma. Outros operadores binários são os operadores (subtração), *, / e %. O operador como troca de sinal é um 15

16 operador unário que não altera a variável sobre a qual é aplicado, pois ele retorna o valor da variável multiplicado por 1. O operador / (divisão) quando aplicado a variáveis inteiras, nos fornece o resultado da divisão inteira; quando aplicado a variáveis em ponto flutuante nos fornece o resultado da divisão real. O operador % fornece o resto da divisão de dois inteiros. Assim seja o seguinte trecho de código: int a = 17, b = 3; int x, y; float z = 17., z1, z2; x = a / b; y = a % b; z1 = z / b; z2 = a/b; ao final da execução destas linhas, os valores calculados seriam x = 5, y = 2, z1 = e z2 = 5.0. Note que, na linha correspondente a z2, primeiramente é feita uma divisão inteira (pois os dois operandos são inteiros). Somente após efetuada a divisão é que o resultado é atribuído a uma variável float. Os operadores de incremento e decremento são unários que alteram a variável sobre a qual estão aplicados. O que eles fazem é incrementar ou decrementar, a variável sobre a qual estão aplicados, de 1. Então: x++; x--; são equivalentes a: x=x+1; x=x-1; Estes operadores podem ser pré fixados ou pós fixados. A diferença é que quando são préfixados eles incrementam e retornam o valor da variável já incrementada. Quando são pós fixados eles retornam o valor da variável sem o incremento e depois incrementam a variável. Então, em: x=23; y=x++; teremos, no final, y=23 e x=24. Em: x=23; y=++x; teremos, no final, y=24 e x=24. 16

17 Observações: Todos os operadores são definidos para os tipos inteiros e não inteiros, exceto o operador resto (%) que não é definido para variáveis dos tipos não inteiros. Para qualquer tipo inteiro, a adição de um ao maior número da faixa daquele tipo produz o menor número da faixa. Os erros de estouro nem sempre são detectados, cabendo ao programador tomar cuidado ao dimensionar as variáveis do programa para que eles não ocorram. Exemplo: unsigned char x; x = 255; x = x + 1; /* x deveria assumir 256, no entanto estoura a faixa e retorna para o menor valor que é 0 */ Operadores relacionais e Lógicos São operadores que permitem comparar valores, ou seja, são utilizados principalmente em comandos que possuem condições: Operador Ação > Maior do que >= Maior ou igual a < Menor do que <= Menor ou igual a == Igual a!= Diferente de Os operadores relacionais retornam verdadeiro (1) ou falso (0). Para verificar o funcionamento dos operadores relacionais, execute o programa abaixo: /* Este programa ilustra o funcionamento dos operadores relacionais. */ #include <stdio.h> int main(){ int i, j; printf("\nentre com dois números inteiros: "); scanf("%d%d", &i, &j); printf("\n%d == %d é %d\n", i, j, i==j); printf("\n%d!= %d é %d\n", i, j, i!=j); printf("\n%d <= %d é %d\n", i, j, i<=j); printf("\n%d >= %d é %d\n", i, j, i>=j); printf("\n%d < %d é %d\n", i, j, i<j); printf("\n%d > %d é %d\n", i, j, i>j); return(0); 17

18 Você pode notar que o resultado dos operadores relacionais é sempre igual a 0 (falso) ou 1 (verdadeiro). Para fazer operações com valores lógicos (verdadeiro e falso) temos os operadores lógicos: Operador Ação && AND (E) OR (OU)! NOT (NÃO) Exemplo: No trecho de programa abaixo a operação j++ será executada, pois o resultado da expressão lógica é verdadeiro: int i = 5, j =7; if ( (i > 3) && ( j <= 7) && ( i!= j) ) j++; V AND V AND V = V Operadores Lógicos Bit a Bit O C permite que se faça operações lógicas "bit a bit" em números. Ou seja, neste caso, o número é representado por sua forma binária e as operações são feitas em cada bit dele. Imagine um número inteiro de 16 bits, a variável i, armazenando o valor 2. A representação binária de i, será: (quinze zeros e um único 1 na segunda posição da direita para a esquerda). Poderemos fazer operações em cada um dos bits deste número. Por exemplo, se fizermos a negação do número (operação binária NOT, ou operador binário ~ em C), isto é, ~i, o número se transformará em As operações binárias ajudam programadores que queiram trabalhar com o computador em "baixo nível". As operações lógicas bit a bit só podem ser usadas nos tipos char, int e long int. Os operadores são: Operador Ação & AND OR ^ XOR (OR exclusivo) ~ NOT >> Deslocamento de bits à direita << Deslocamento de bits à esquerda Os operadores &,, ^ e ~ são as operações lógicas bit a bit. A forma geral dos operadores de deslocamento é: valor>>número_de_deslocamentos valor<<número_de_deslocamentos O número_de_deslocamentos indica o quanto cada bit irá ser deslocado. exemplo, para a variável i anterior, armazenando o número 2: Por 18

19 i << 3; fará com que i agora tenha a representação binária: , isto é, o valor armazenado em i passa a ser igual a Expressões Expressões são combinações de variáveis, constantes e operadores. Quando montamos expressões temos que levar em consideração a ordem com que os operadores são executados, conforme a tabela de precedências da linguagem C. Exemplos de expressões: Anos=Dias/365.25; i = i+3; c = a*b + d/e; c = a*(b+d)/e; Conversão de tipos em expressões Quando o C avalia expressões onde temos variáveis de tipos diferentes o compilador verifica se as conversões são possíveis. Se não são, ele não compilará o programa, dando uma mensagem de erro. Se as conversões forem possíveis ele as faz, seguindo as regras abaixo: Todos os chars e short ints são convertidos para ints. Todos os floats são convertidos para doubles. Para pares de operandos de tipos diferentes: se um deles é long double o outro é convertido para long double; se um deles é double o outro é convertido para double; se um é long o outro é convertido para long; se um é unsigned o outro é convertido para unsigned. Exemplo: float x, res; char c;... res = x/c; /* o valor de x/c é convertido para um float, embora c seja originalmente um char */ Conversão explícita de tipos (type casts) É possível forçar uma expressão a ser de um tipo específico, sem no entanto mudar os tipos das variáveis envolvidas nesta expressão. Esse tipo de operação chama se conversão explícita de tipo, ou type cast. A forma geral de um type cast é: 19

20 (tipo) expressão; onde tipo é um dos tipos de dado padrão da linguagem C. As operações de type cast são muito úteis em expressões nas quais alguma operação resulta em perda de precisão devido ao tipo das variáveis ou constantes envolvidas. Por exemplo: float res; int op1,op2; op1 = 3; op2 = 2; res = op1 / op2; /* res recebe 1, já que op1 e op2 são ambos números do tipo int e o resultado da sua divisão também é int */ res = (float)op1 / op2; /* res recebe 1.5, já que o type cast forçou o operando op1 a ser um float nesta operação. O resultado da divisão, por consequência, também é float */ Expressões que Podem ser Abreviadas O C admite as seguintes equivalências, que podem ser usadas para simplificar expressões ou para facilitar o entendimento de um programa: Expressão Original x=x+k; x=x k; x=x*k; x=x/k; x=x>>k; x=x<<k; x=x&k; etc... Expressão Equivalente x+=k; x =k; x*=k; x/=k; x>>=k; x<<=k; x&=k; Encadeando expressões: o operador, O operador, determina uma lista de expressões que devem ser executadas seqüencialmente. Em síntese, a vírgula diz ao compilador: execute as duas expressões separadas pela vírgula, em seqüência. O valor retornado por uma expressão com o operador, é sempre dado pela expressão mais à direita. No exemplo abaixo: x=(y=2,y+3); o valor 2 vai ser atribuído a y, se somará 3 a y e o retorno (5) será atribuído à variável x. Pode se encadear quantos operadores, forem necessários. 20

21 2.13. Tabela de Precedências do C Esta é a tabela de precedência dos operadores em C. Alguns (poucos) operadores ainda não foram estudados, e serão apresentados em aulas posteriores. Maior () [] ->! ~ (unário) * / % + - << >> <<= >>= ==!= & ^ &&? = += -= *= /= Menor, Espaçamento e parênteses Podemos colocar espaços em uma expressão para torná la mais legível. O uso de parênteses redundantes ou adicionais não causará erros ou diminuirá a velocidade de execução da expressão. Exemplo: a=b/ *x-34.7; a = (b / 9.67) (56.89 * x) 34.7; /* equivalente */ Estrutura de um programa em C Uma particularidade interessante no programa C é seu aspecto modular e funcional, em que o próprio programa principal é uma função. Esta forma de apresentação da linguagem facilita o desenvolvimento de programas, pois permite o emprego de formas estruturadas e modulares encontradas em outras linguagens. 21

22 A estrutura de um programa em C possui os seguintes elementos, sendo que aqueles delimitados por colchetes são opcionais: [ definições de pré-processamento ] [ definições de tipo ] [ declarações de variáveis globais ] [ protótipos de funções ] [ funções ] int main ( ){ /* definições de variáveis */ /* corpo da função principal, com declarações de suas variáveis, seus comandos e funções */ Definições de pré processamento são comandos interpretados pelo compilador, em tempo de compilação, que dizem respeito a operações realizadas pelo compilador para geração de código. Geralmente iniciam com uma cerquilha (#) e não são comandos da linguagem C (detalhados posteriormente). Exemplo: #include <stdio.h> /* comando de pré-processador, utilizado para indicar ao compilador que ele deve colar as definições do arquivo stdio.h neste arquivo antes de compilá-lo */ Definições de tipos são definições de estruturas ou tipos de dados especiais, introduzidos pelo usuário para facilitar a manipulação de dados pelo programa (detalhados posteriormente). Declarações de variáveis globais são feitas quando é necessário utilizar variáveis globais no programa. O conceito de variável global e as vantagens e desvantagens do seu uso dizem respeito à modularização (funções) de um programa em C. Protótipos de funções e funções também dizem respeito a questões de modularização. main() é a função principal de um programa em C, contendo o código que será inicialmente executado quando o programa em si for executado. Todo programa em C deve conter a função main(), do contrário será gerado um erro durante o processo de geração do programa (mais especificamente, na etapa de ligação). 22

23 3. Funções básicas de entrada e saída Esta seção descreve algumas das funções básicas de E/S, que serão utilizadas inicialmente para prover o programador de um canal de entrada de dados via teclado e um canal de saída de dados via monitor Função printf( ) (biblioteca stdio.h) A função printf( ) é basicamente utilizada para enviar informações ao monitor, ou seja, imprimir informações. O seu protótipo é o seguinte: printf("string de controle", lista de variáveis); String de controle: é uma máscara que especifica (formata) o que será impresso e de que maneira será impresso na tela. Exemplo: Instrução Saída printf( Ola, Mundo! ); Ola, Mundo! printf( linha 1 \nlinha 2 ); linha 1 linha 2 Observe que na primeira instrução, a saída é exatamente igual à string de controle. Já na segunda instrução a impressão se deu em duas linhas. Isto se deve ao \n que representa o código ASCII para quebra de linha. Nesta mascara é possível reservar espaço para o valor de alguma variável usando especificadores de formato. Um especificador de formato marca o lugar e o formato de impressão das variáveis contidas na lista variáveis. Deve haver um especificador de formato para cada variável a ser impressa. Todos os especificadores de formato começam com um %. Exemplo: Código Imprime printf ("%-5.2f", ); printf ("%5.2f",2.671); 2.67 printf ("%-10s","Ola"); Ola Nos exemplos o "pipe" ( ) indica o início e o fim do campo mas não são escritos na tela. Depois do sinal %, seguem se alguns modificadores, cuja sintaxe é a seguinte: % [flag] [tamanho] [.precisão] espeficadores_formato [flag] justificação de saída: (Opcional) 23

24 (-) : Alinha o resultado à esquerda. Preenche o restante do campo com brancos. Se não é colocado, alinha o resultado à direita e preenche o restante à esquerda com zeros ou brancos. (+): O resultado sempre começa com o sinal + ou (#): Especifica que o argumento será impresso usando uma das formas alternativas [tamanho] especificação de tamanho (Opcional) n: pelo menos n dígitos serão impressos (dígitos faltantes serão completados por brancos). 0n: pelo menos n dígitos serão impressos (dígitos faltantes serão completados por zeros). [.precisão] especificador de precisão, dígitos a direita do ponto decimal. (Opcional) (nada) padrão: 6 dígitos para reais..0: nenhum digito decimal..n: são impressos n dígitos decimais. especificadores_formado: comando de formatação de tipo (Requerido) Código Tipo Formato s char * String (vetor de caracteres) d int Inteiro decimal com sinal i int Inteiro decimal com sinal o int Inteiro octal sem sinal u int Inteiro decimal sem sinal x int Inteiro hexadecimal sem sinal (com a, b, c, d, e, f) X int Inteiro hexadecimal sem sinal (com A, B, C, D, E, F) f float Valor com sinal da forma [ ]dddd.dddd e float Valor com sinal da forma [ ]d.dddd e [+/ ]ddd g float Valor com sinal na forma e ou f baseado na precisão do valor dado E float Mesmo que e, mas com E para expoente G float Mesmo que g, mas com E para expoente c char Um caracter % nada O caracter % é impresso n int * Armazena o número de caracteres escritos até o momento p ponteiro imprime como um ponteiro 24

25 são: Os principais caracteres de controle especiais que auxiliam a formação da impressão na tela Código Significado \a sinal audível \b retrocesso do cursor \f alimentação de formulário \n nova linha \r retorno de carro \t tabulação horizontal \ aspas \ apóstrofo \0 nulo (zero) \\ barra invertida \v tabulação vertical \a sinal sonoro \N constante octal (onde N é um octal) \xn constante hexadecimal (onde N é um hexadecimal) Exemplos: 1) int n = 15; printf( O valor de n eh %d, n); /* exibe O valor de n eh 15. Note-se que todo o conteúdo da string de dados e formato é exibido literalmente, com exceção do especificador %d, que é substituído pelo valor em formato inteiro da variável n */ 2) char carac = A ; float num = 3.16; printf( A letra eh %c e o numero eh %f, carac, num); /* exibe A letra eh A e o numero eh Neste caso, o especificador %c (primeiro da string) é substituído pelo valor da variável carac e o especificador %f é substituído pelo valor da variável num. Note-se que os tipos dos especificadores e das variáveis são compatíveis */ Função scanf() (biblioteca stdio.h) A função scanf é utilizada para receber dados de uma entrada de dados padrão. Consideraremos, para fins de simplificação, que essa entrada padrão é sempre o teclado. O protótipo de scanf é o seguinte: scanf (string de formato, &var1, &var2,, &varn); 25

26 onde a string de formato contém os especificadores de formato na seqüência e relativos a cada um dos dados que se pretende receber. Para uma lista dos especificadores de formato mais utilizados, ver seção 3.1. var1 a varn identificam as variáveis nas quais serão armazenados os valores recebidos por scanf, na mesma ordem determinada pelos especificadores de formato. O número N deve ser igual ao número de especificadores de formato fornecidos. IMPORTANTE: o operador de endereço (&) DEVE obrigatoriamente ser utilizado diante dos identificadores das variáveis, do contrário ocorre um erro. Para maiores detalhes, consultar a teoria sobre ponteiros. 1) Exemplos: int t; printf( Digite um inteiro: ); scanf( %d, &t); /* aguarda a digitação de um número do tipo int. O número digitado é armazenado na variável t quando o usuário digita ENTER */ 2) char carac1; float i; printf( Digite um caracter e um float, separados por vírgula: ); scanf( %c, %f, &carac1, &i); /* neste caso, os especificadores de formato %c e %f estão separados por vírgula, o que significa que o usuário deve digitar os valores também separados por vírgula e na ordem correta */ 3.2. Dois Primeiros Programas Vejamos um primeiro programa em C: #include <stdio.h> /* Um Primeiro Programa */ int main () { printf ("Ola! Eu estou vivo!\n"); return(0); Compilando e executando este programa você verá que ele coloca a mensagem Ola! Eu estou vivo! na tela. 26

27 Análise do Programa A linha #include <stdio.h> diz ao compilador que ele deve incluir o arquivo cabeçalho stdio.h. Neste arquivo existem declarações de funções úteis para entrada e saída de dados (std = standard, padrão em inglês; io = Input/Output, entrada e saída ==> stdio = Entrada e saída padronizadas). Toda vez que você quiser usar uma destas funções deve se incluir este comando. O C possui diversos Arquivos cabeçalho. Ao fazer um programa, uma boa idéia é usar comentários que ajudem a elucidar o funcionamento do mesmo. No caso acima temos um comentário: /* Um Primeiro Programa */. O compilador C desconsidera qualquer coisa que esteja começando com /* e terminando com */. Um comentário pode, inclusive, ter mais de uma linha. A linha int main() indica que estamos definindo uma função de nome main. Todos os programas em C têm que ter uma função main, pois é esta função que será chamada quando o programa for executado. O conteúdo da função é delimitado por chaves {. O código que estiver dentro das chaves será executado seqüencialmente quando a função for chamada. A palavra int indica que esta função retorna um inteiro. O que significa este retorno será visto posteriormente, quando estudarmos um pouco mais detalhadamente as funções do C. A última linha do programa, return(0);, indica o número inteiro que está sendo retornado pela função, no caso o número 0. A única coisa que o programa realmente faz é chamar a função printf(), passando a string (uma string é uma seqüência de caracteres, como veremos brevemente) "Ola! Eu estou vivo!\n" como argumento. É por causa do uso da função printf() pelo programa que devemos incluir o arquivo cabeçalho stdio.h. A função printf() neste caso irá apenas colocar a string na tela do computador. O \n é uma constante chamada de constante barra invertida. No caso, o \n é a constante barra invertida de "new line" e ele é interpretado como um comando de mudança de linha, isto é, após imprimir Ola! Eu estou vivo! o cursor passará para a próxima linha. É importante observar também que os comandos do C terminam com ;. Podemos agora tentar um programa mais complicado: #include <stdio.h> int main (){ int Dias; /* Declaracao de Variaveis */ float Anos; printf ("Entre com o número de dias: "); /* Entrada de Dados */ scanf ("%d",&dias); Anos=Dias/365.25; /* Conversao Dias->Anos */ printf ("\n\n%d dias equivalem a %f anos.\n",dias,anos); return(0); Análise do Programa São declaradas duas variáveis chamadas Dias e Anos. A primeira é um int (inteiro) e a segunda um float (ponto flutuante). As variáveis declaradas como ponto flutuante existem para armazenar números que possuem casas decimais, como 5,1497. É feita então uma chamada à função printf(), que coloca uma mensagem na tela. 27

28 Queremos agora ler um dado que será fornecido pelo usuário e colocá lo na variável inteira Dias. Para tanto usamos a função scanf(). A string "%d" diz à função que iremos ler um inteiro. O segundo parâmetro passado à função diz que o dado lido deverá ser armazenado na variável Dias. É importante ressaltar a necessidade de se colocar um & antes do nome da variável a ser lida quando se usa a função scanf(). O motivo disto só ficará claro mais tarde. Observe que, no C, quando temos mais de um parâmetro para uma função, eles serão separados por vírgula. Temos então uma expressão matemática simples que atribui a Anos o valor de Dias dividido por ( é uma constante ponto flutuante 365,25). Como Anos é uma variável float o compilador fará uma conversão automática entre os tipos das variáveis (veremos isto com detalhes mais tarde). A segunda chamada à função printf() tem três argumentos. A string "\n\n%d dias equivalem a %f anos.\n" diz à função para pular duas linhas, colocar um inteiro na tela, colocar a mensagem "dias equivalem a", colocar um valor float na tela, colocar a mensagem "anos." e pular outra linha. Os outros parâmetros são as variáveis, Dias e Anos, das quais devem ser lidos os valores do inteiro e do float, respectivamente. 28

29 4. Estruturas de controle As estruturas de controle de fluxo são fundamentais para qualquer linguagem de programação. Sem elas só haveria uma maneira do programa ser executado: de cima para baixo comando por comando. Não haveria condições, repetições ou saltos. A linguagem C possui diversos comandos de controle de fluxo. É possível resolver todos os problemas sem utilizar todas elas, mas devemos nos lembrar que a elegância e facilidade de entendimento de um programa dependem do uso correto das estruturas no local certo Comando simples São comandos, que no fluxo de controle do programa, são sempre executados passando a execução para a próxima instrução, ou seja, todos os comandos de seqüência são executados desde que eles não dependem de um comando de seleção. Exemplo: (todas as instruções abaixo são de seqüência) system( clear ); printf("digite um valor: "); scanf("%f",&valor); resp = valor * 1.25; // limpa a tela // entrada de dados via teclado // atribuição é um comando de seqüência 4.2. Bloco de comandos Utiliza se chaves ( { ) para delimitar blocos de comando em um programa em C. Estes são mais utilizados no agrupamento de instruções para execução pelas cláusulas das estruturas condicionais e de repetição Estruturas de Seleção Estrutura if-else Sintaxe: if ( condição ){ bloco de comandos 1; else { bloco de comandos 2; 29

30 condição é qualquer expressão que possa ser avaliada com o valor verdadeiro ( true ) ou falso ( false ). No caso de expressões que possuam um valor numérico ao invés de um valor lógico, se o valor é diferente de zero a expressão é avaliada com valor lógico true, do contrário é avaliada com o valor lógico false. Caso a condição possua um valor lógico true, bloco de comandos 1 é executado. Se o valor lógico da condição for false, bloco de comandos 2 é executado. Para qualquer um dos blocos, se este for formado por um único comando as chaves são opcionais. A estrutura if-else é semelhante a uma estrutura condicional composta, em que um ou outro bloco de comandos é executado; a cláusula else, no entanto, é opcional, e se for omitida a estrutura passa a funcionar como uma estrutura condicional simples, em que um bloco de comandos (no caso, o bloco 1) somente é executado se a condição for verdadeira. 1) Exemplos: int num; printf( Digite um numero: ); scanf( %d, &num); if (num < 0){ /*testa se num é menor que zero */ /* bloco de comandos executado se a condição é verdadeira. Neste caso, como printf é um único comando as chaves poderiam ser omitidas */ printf( \no número é menor que zero ); else { /* bloco de comandos executado se a condição é falsa. Neste caso, como printf é um único comando as chaves poderiam ser omitidas */ printf( \no número é maior que zero ); 2) Estrutura if-else-if if ((a == 2) && (b == 5)) /* condição com operação lógica */ printf( \ncondição satisfeita ); /* bloco de comandos */ system( clear ); /* esta instrução não faz parte da estrutura condicional, logo é sempre executada */ 30

31 A estrutura if-else-if é apenas uma extensão da estrutura if-else. Sua forma geral pode ser escrita como sendo: if (condição_1){ bloco de comandos 1; else if (condição_2){ bloco de comandos 2; else if (condição_3){ bloco de comandos 3;... else if (condição_n) { bloco de comandos n; else declaração_default; A estrutura acima funciona da seguinte maneira: o programa começa a testar as condições começando pela 1 e continua a testar até que ele ache uma expressão cujo resultado dê diferente de zero. Neste caso ele executa a declaração correspondente. Só uma declaração será executada, ou seja, só será executada a declaração equivalente à primeira condição que der diferente de zero. A última declaração (default) é a que será executada no caso de todas as condições darem zero e é opcional. Um exemplo da estrutura acima: #include <stdio.h> int main (){ int num; printf ("Digite um numero: "); scanf ("%d",&num); if (num>10) printf ("\n\no numero e maior que 10"); else if (num==10){ printf ("\n\nvoce acertou!\n"); printf ("O numero e igual a 10."); else if (num<10) printf ("\n\no numero e menor que 10"); return(0); ifs aninhados O if aninhado é simplesmente um if dentro da declaração de um outro if externo. O único cuidado que devemos ter é o de saber exatamente a qual if um determinado else está ligado. 31

32 Exemplo: #include <stdio.h> int main (){ int a, m; printf ("Digite um ano e mês: "); scanf ("%d%d",&a, &m); if (m == 3){ if ((a >=1) && (a <= 31)){ /* este if faz parte do bloco de comandos do if anterior */ printf( Data OK ); else{ /* este else é do if mais proximo (que faz parte do bloco de comandos) */ printf( Data inválida ); return(0); O Operador? Uma expressão como: if (a>0) b=-150; else b=150; pode ser simplificada usando se o operador? da seguinte maneira: b=a>0?-150:150; De uma maneira geral expressões do tipo: if (condição) expressão_1; else expressão_2; podem ser substituídas por: condição? expressão_1 : expressão_2; O operador? é limitado (não atende a uma gama muito grande de casos) mas pode ser usado para simplificar expressões complicadas. Uma aplicação interessante é a do contador circular. 32

33 Exemplo: #include <stdio.h> int main(){ int index = 0, contador; char letras[5] = "Joao"; for (contador=0; contador < 1000; contador++){ printf("\n%c",letras[index]); (index==3)? index=0: ++index; O nome Joao é escrito na tela verticalmente até a variável contador determinar o término do programa. Enquanto isto a variável index assume os valores 0, 1, 2, 3,, 0, 1,... progressivamente. Estrutura Switch O comando if-else e o comando switch são os dois comandos de tomada de decisão. Sem dúvida alguma o mais importante dos dois é o if, mas o comando switch tem aplicações valiosas. Mais uma vez vale lembrar que devemos usar o comando certo no local certo. Isto assegura um código limpo e de fácil entendimento. O comando switch é próprio para se testar uma variável em relação a diversos valores pré estabelecidos. Sua forma geral é: switch (variável){ case constante_1 : seqüência de comandos; break; case constante_2 : seqüência de comandos; break;... default: seqüência de comandos; O programa testa uma variável sucessivamente contra uma lista de constantes inteiras ou caracteres (int ou char). Depois de encontrar uma coincidência, o programa executa o comando ou bloco de comandos que estejam associados àquela constante. O comando default é executado se não houver nenhuma coincidência. O comando break é utilizado para obrigar a saída do comando switch, se o comando break for esquecido ao final de uma seqüência de comandos, a execução continuará pela próxima declaração case até que um break ou o final do switch seja encontrado, o que normalmente é indesejado. A opção default é opcional. Uma declaração switch é mais eficiente que um encadeamento if-else, além do que pode ser escrito de forma muito mais elegante. Observação: A variável não pode ser uma string (char *) e nem real (float). 33

34 Exemplo #include <stdio.h> int main (){ int digito; printf("dígito [0.. 9]: "); scanf("%d", &digito); switch (digito){ case 0: printf("zero\n"); break; case 1: printf("um\n"); break; case 2: printf("dois\n"); break; case 3: printf("três\n"); break; case 4: printf("quatro\n"); break; case 5: printf("cinco\n"); break; case 6: printf("seis\n"); break; case 7: printf("sete\n"); break; case 8: printf("oito\n"); break; case 9: printf("nove\n"); break; default: printf("erro: Não é um digito\n"); 4.4. Estruturas de Repetição Estrutura while Sintaxe: while (condição){ sequência de comandos; O comando while avalia o valor lógico de condição; se o valor lógico for verdadeiro (true) a seqüência de comandos é executada, caso contrário a execução do programa continua após a estrutura while. Caso a seqüência de comandos seja formada por um único comando, o uso das chaves é opcional. Após a execução da seqüência de comandos, o valor lógico de condição é reavaliado, e se continuar sendo verdadeiro (true) a seqüência de comandos é executada novamente. Este comportamento se repete até que o valor lógico da condição seja falso (false), quando a execução da estrutura while é interrompida e continua na instrução seguinte. 34

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha LINGUAGEM DE PROGRAMAÇÃO C AULA 2 Professor: Rodrigo Rocha TIPOS, VARIÁVEIS E CONSTANTES Tipos de Dados Variáveis Constantes Introdução a entrada e saída Printf Scanf Ferramentas: Dev-C++ Code::Blocks

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é

Leia mais

A Linguagem C. A forma de um programa em C

A Linguagem C. A forma de um programa em C A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Introdução à linguagem C

Introdução à linguagem C Introdução à linguagem C Luís Charneca luis.charneca@gmail.com Introdução ao C O C nasceu na década de 70. O seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 correndo

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada

Leia mais

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Universidade Federal do Espírito Santo Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Variáveis Tipos de Dados Básicos Formação dos identificadores o nome deve começar com uma letra

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Laboratório de Programação II

Laboratório de Programação II Laboratório de Programação II Aula 02 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... 01 Introdução à linguagem C;

Leia mais

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES LINGUAGEM C: VARIÁVEIS E EXPRESSÕES Prof. André Backes LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br

Leia mais

INTRODUÇÃO A LINGUAGEM C

INTRODUÇÃO A LINGUAGEM C INTRODUÇÃO A LINGUAGEM C Aula 01 Programação em Microinformática Prof. Allbert Velleniche de Aquino Almeida E-mail: professor@allbert.com.br Site: http://www.allbert.com.br Histórico O C nasceu na década

Leia mais

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Introdução a Linguagem C GE4 Bio GE4Bio Grupo de Estudos

Leia mais

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo Algoritmos e Estruturas de Dados I IEC012 Linguagem C - Guia de bolso - Prof. César Melo Histórico A linguagem C é uma linguagem de programação inventada na década de 1970 por Dennis Ritchie Brian Kennigaham.

Leia mais

Variáveis e Operadores em C

Variáveis e Operadores em C Variáveis e Operadores em C Luís Charneca luis.charneca@gmail.com NOMES DE VARIÁVEIS (1) As variáveis no C podem ter qualquer nome se duas condições forem satisfeitas: o nome deve começar com uma letra

Leia mais

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Linguagem C Controle do Fluxo de Execução. Lógica de Programação Linguagem C Controle do Fluxo de Execução Lógica de Programação Caro(a) aluno(a), Aqui começaremos a escrever os nossos primeiros programas em uma Linguagem de Programação. Divirta-se!!! Estrutura Seqüencial

Leia mais

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES Linguagem C - Introdução Linguagens de Máquina Representação numérica Difícil utilização e compreensão Específica para cada máquina Linguagens Simbólicas(Assembly)

Leia mais

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

Aula 03 - Linguagem C

Aula 03 - Linguagem C Aula 03 - Linguagem C Disciplina: Algoritmos Prof. Allbert Velleniche de Aquino Almeida E-mail: allbert.almeida@fatec.sp.gov.br Site: http://www.allbert.com.br /allbert.almeida Histórico O C nasceu na

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

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador

Leia mais

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",

Leia mais

Linguagem de Programação C

Linguagem de Programação C Linguagem de Programação C Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais 13 de novembro de 2009 Introdução O que é uma linguagem

Leia mais

Linguagens de Programação I

Linguagens de Programação I Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler

Leia mais

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo

Leia mais

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída

Leia mais

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1 Linguagem C: Variáveis e Operadores Prof. Leonardo Barreto Campos Sumário Variáveis: Tipos de variáveis; Nome da variável; Palavras reservadas; A função printf(); A função scanf(); Variáveis locais; Variáveis

Leia mais

Métodos Computacionais

Métodos Computacionais Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento

Leia mais

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito

Leia mais

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores

Leia mais

Disciplina de Algoritmos e Programação

Disciplina de Algoritmos e Programação Disciplina de Algoritmos e Programação Aula Passada Prática com declaração e inicialização de variáveis Capacidade de representação (estouro de representação) Tamanho ocupado pela variável na memória (comando

Leia mais

Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C

Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C Linguagem C Algoritmos e Lógica de Programação Reinaldo Gomes reinaldo@cefet-al.br Introdução Pré-processador Variáveis Operadores Introdução: Histórico Linguagem criada por Dennis Ritchie em 1972 Em 1973

Leia mais

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações

Leia mais

Tópicos em C. Eliade F. Lima

Tópicos em C. Eliade F. Lima Tópicos em C Eliade F. Lima maio/2010 Criada em 1972, por Dennis Ritchie, nos laboratórios Bell, para ser usada no sistema operacional UNIX. Linguagem de propósito geral, sendo adequada à programação estruturada.

Leia mais

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores VARIÁVEIS E TIPOS DE DADOS

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores VARIÁVEIS E TIPOS DE DADOS Linguagem C Introdução à Programação C Introdução à Ciência da Computação I Prof. Denis F. Wolf Origem de C está associada ao sistema Unix Histórico: 1970: Ken Thompson desenvolve B, baseada em BCPL, para

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

Introdução à Linguagem C Variáveis e Expressões

Introdução à Linguagem C Variáveis e Expressões INF1005: Programação 1 Introdução à Linguagem C Variáveis e Expressões 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Programando em C Funções Variáveis Define Operadores e Expressões Entrada e Saída

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/1 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c

Leia mais

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia Calculo da área de um triângulo Algoritmo Área Var base,

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas

Leia mais

6 Alguns conceitos e comandos em programação

6 Alguns conceitos e comandos em programação 6 Alguns conceitos e comandos em programação 6.1 Diretivas Diretivas são instruções que permitem ao programador efetuar algum tipo de modificação à compilação, sendo analisadas e executadas pelo pré-compilador,

Leia mais

4. Estruturas Fundamentais de Programação em C

4. Estruturas Fundamentais de Programação em C 4. Estruturas Fundamentais de Programação em C 4.1. Imprimindo Mensagens e Valores no Monitor de Vídeo A biblioteca de entrada e saída (stdio.h) possui a função printf que imprime mensagens e valores diretamente

Leia mais

Linguagem de Programação C

Linguagem de Programação C Algoritmos e Lógica de Programação Linguagem C Reinaldo Gomes reinaldo@cefet-al.br Introdução Pé Pré-processador Variáveis Operadores Introdução: Histórico Linguagem criada por Dennis Ritchie em 1972 Em

Leia mais

Programação I A Linguagem C. Prof. Carlos Alberto

Programação I A Linguagem C. Prof. Carlos Alberto Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada

Leia mais

RESUMO DE CONCEITOS BÁSICOS DE C

RESUMO DE CONCEITOS BÁSICOS DE C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação RESUMO DE CONCEITOS BÁSICOS DE C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010

Leia mais

A linguagem C (visão histórica)

A linguagem C (visão histórica) A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,

Leia mais

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

Leia mais

Linguagem C. André Tavares da Silva.

Linguagem C. André Tavares da Silva. Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser

Leia mais

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Linguagem de Programação C. Prof. Fabrício Olivetti de França Linguagem de Programação C Prof. Fabrício Olivetti de França Linguagem C 2 Linguagem C Imperativo e estruturado Pequeno conjunto de palavras-chaves, operadores, etc. Tipagem estática, porém fraca Permite

Leia mais

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados Linguagem de Programação I Aula 06 Linguagem C: Tipos de Dados Da Aula Anterior Linguagens de Programação A Linguagem C: Como tudo começou Principais características da Linguagem C O primeiro programa

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear

Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 03 Variáveis, Tipos de Dados, Comandos e Estrutura Linear 1 Curiosidade A Pesquisa

Leia mais

Capítulo 2 Operadores. A função scanf()

Capítulo 2 Operadores. A função scanf() Capítulo 2 Operadores A função scanf() A função scanf() é outra das funções de E/S implementadas em todos os compiladores e nos permite ler dados formatados da entrada padrão (teclado). Sintaxe: scanf(

Leia mais

Variáveis primitivas e Controle de fluxo

Variáveis primitivas e Controle de fluxo Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/

Leia mais

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

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

Leia mais

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

ECT1203 Linguagem de Programação

ECT1203 Linguagem de Programação Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira

Leia mais

GFM015 Introdução à Computação Algoritmos e Programação / Estrutura de Controle de Fluxo / Ambiente de Programação

GFM015 Introdução à Computação Algoritmos e Programação / Estrutura de Controle de Fluxo / Ambiente de Programação GFM015 Introdução à Computação Algoritmos e Programação / Estrutura de Controle de Fluxo / Ambiente de Programação Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/ic UFU/FACOM Programa

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação Algoritmos e Introdução à Programação Lógica e Linguagem de Programação Prof. José Honorato Ferreira Nunes honoratonunes@softwarelivre.org http://softwarelivre.org/zenorato/honoratonunes Linguagem C Prof.

Leia mais

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02 Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração

Leia mais

Slides trabalhados durante a quinta aula

Slides trabalhados durante a quinta aula Slides trabalhados durante a quinta aula prática Estruturas de Controle de Fluxo 3. Laços de repetição (continuação) Exercício: Construa um algoritmo, representando-o através de um pseudocódigo e de um

Leia mais

Introdução à Ciência da Computação scc-120

Introdução à Ciência da Computação scc-120 ICMC USP 1.semestre/2011 Introdução à Ciência da Computação scc-120 Aula : Variáveis em C Profa. Roseli Romero mailto: rafrance@icmc.sc.usp.br Slides cedidos pela profa. Renata Fortes Variáveis variáveis

Leia mais

Aula 03: Introdução a C

Aula 03: Introdução a C Aula 03: Introdução a C Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior O que é um computador Organização de um

Leia mais

SCC-120 INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO

SCC-120 INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO SCC-120 INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Prof. Zhao Liang O QUE É C? No inicial do computador, os programas eram escritos em linguagem de maquina Instruções primitivas que podiam ser executadas diretamente

Leia mais

Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear

Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Janeiro de 2018 Unidade 04 Linguagem

Leia mais

Aula 3 Constantes e funções de E/S

Aula 3 Constantes e funções de E/S Programação I Aula 3 e funções de E/S Prof. Laura Silva de Assis e Prof. Luis Carlos Retondaro Engenharia de Computação 2o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

Leia mais

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Disciplina de Programação de Computadores I Universidade Federal de Ouro

Leia mais

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Conceitos básicos. Computação eletrônica: Gurvan Huiban Computação eletrônica: Conceitos básicos Gurvan Huiban ghuiban@cin.ufpe.br Plano de aula 1 Estrutura de um programa em C 2 Variáveis e constantes 3 Comandos de entrada e saída Estrutura de um programa

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

Leia mais

Introdução a Programação de Jogos

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

Leia mais

Linguagem de Programação. Thiago Leite Francisco Barretto

Linguagem de Programação. Thiago Leite Francisco Barretto Linguagem de Programação Thiago Leite Francisco Barretto SCHILDT, H. C Completo e Total. 3ª Edição. São Paulo: Makron, 1997. Bibliografia Ementa

Leia mais

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

Conhecendo a Linguagem de Programação C

Conhecendo a Linguagem de Programação C Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como

Leia mais

Engenharia Elétrica AAM. Professor: Marco Shawn Meireles Machado

Engenharia Elétrica AAM. Professor: Marco Shawn Meireles Machado Engenharia Elétrica AAM Professor: Marco Shawn Meireles Machado Objetivos da Aula: Definir linguagem de alto nível e baixo nível; Descrever a linguagem assembler; Descrever a linguagem C; Revisão linguagem

Leia mais

Comandos de Controle do Programa

Comandos de Controle do Programa Comandos de Controle do Programa Comandos de Seleção - if, else, switch Comandos de Iteração - for, while, do-while Comandos de Desvio - return, goto, break, continue O Comando if O if O else O if-else-if

Leia mais

Cláudio C. Rodrigues Faculdade da Computação - UFU. Faculdade da Computação - UFU 1

Cláudio C. Rodrigues Faculdade da Computação - UFU. Faculdade da Computação - UFU 1 Cláudio C. Rodrigues Faculdade da Computação - UFU LINGUAGEM C - 01: TIPOS, VARIÁVEIS E E/S PADRÃO Faculdade da Computação - UFU 1 A Linguagem C Linguagem de alto nível, genérica. Foi desenvolvida por

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4 Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para

Leia mais

ITENS FUNDAMENTAIS Programando em C++

ITENS FUNDAMENTAIS Programando em C++ INFORMÁTICA E COMPUTAÇÃO - CMP 1060 AULA 3 ITENS FUNDAMENTAIS Programando em C++ 1. Constantes São valores que são mantidos fixos pelo compilador. Tipo de Dado Exemplos de Constantes char b \n \0 int 2

Leia mais

Aula 4: Introdução à Linguagem C++

Aula 4: Introdução à Linguagem C++ CI208 - Programação de Computadores Aula 4: Introdução à Linguagem C++ Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas

Leia mais

Prof. Marcelo Machado Cunha Faculdade Pio Décimo

Prof. Marcelo Machado Cunha Faculdade Pio Décimo 1 Introdução A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell Laboratories. Sua primeira utilização importante foi a reescrita do Sistema Operacional UNIX, que até então

Leia mais

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes Fundamentos de Programação Linguagem C++ aula II - Variáveis e constantes Prof.: Bruno Gomes 1 Variáveis Representa uma porção da memória que pode ser utilizada pelo programa para armazenar informações

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1 Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores Aula - Tópico 1 1 Problema 1 Considere o seguinte problema: Determinar o valor de y = seno(1,5). 2 Definições Para

Leia mais

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Noçõ ções básicas b da linguagem Java Profs. Marcel Hugo e Jomi Fred Hübner Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Introduçã ção Origem Funcionamento Vantagens Linguagem

Leia mais

Estrutura de Programas e Tipos de Dados Simples

Estrutura de Programas e Tipos de Dados Simples SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Estrutura de Programas e Tipos de Dados Simples Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br

Leia mais

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação Créditos Introdução à Ciência da Computação Introdução à Linguagem C: Parte I Prof. Ricardo J. G. B. Campello Alguns slides a seguir foram adaptados dos originais gentilmente cedidos por: Prof. André C.

Leia mais

Introdução à Computação MAC0110

Introdução à Computação MAC0110 Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão

Leia mais

Algoritmos II prof. Daniel Oliveira

Algoritmos II prof. Daniel Oliveira Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional

Leia mais

3.1 - Funções para manipular dados de entrada e saída padrão

3.1 - Funções para manipular dados de entrada e saída padrão 1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para

Leia mais