Linguagem C 01 Primeiros Passos

  • Uploaded by: Regis Pires Magalhães
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Linguagem C 01 Primeiros Passos as PDF for free.

More details

  • Words: 1,482
  • Pages: 44
Linguagem C

Introdução e Primeiros Passos

Regis Pires Magalhães [email protected]

http://regispiresmag.googlepages.com/cefet

Histórico  



Surgiu na década de 1970 nos laboratórios Bell. Dennis Richie e Brian Kerninghan implementaram C usando um DEC PDP-11 rodando o SO UNIX. Derivado da linguagem B, criada por Ken Thompson. 



B deriva da linguagem BCPL, criada por Martin Richards.

Nos anos 1980 iniciou-se a criação de um padrão chamado C ANSI (American National Standardization Institute).

[email protected]

http://regispiresmag.googlepages.com/cefet

Características 

Linguagem de propósito genérico; 

   

Usada para escrever processadores de texto, planilhas, sistemas operacionais, programas de comunicação, programas para automação industrial, SGBDs, navegadores e servidores Web, etc.

Possui características de alto e de baixo nível; Excelente performance; Muito popular; Sintaxe de C serve de base para muitas outras linguagens.

[email protected]

http://regispiresmag.googlepages.com/cefet

Características 



Deu origem a outras linguagens de programação, entre elas C++, Java, C#, PHP, Ruby, Python, etc. Muito usada no desenvolvimento de: 

Compiladores, interpretadores, editores de texto, banco de dados, computação gráfica, manipulação e processamento de imagens, controle de processos, …

[email protected]

http://regispiresmag.googlepages.com/cefet

Características  

     

Portabilidade Geração de códigos executáveis compactos e rápidos Interação com o sistema operacional Facilidade de uso Linguagem estruturada Confiabilidade Simplicidade Case sensitive 

Maiúsculas e minúsculas fazem diferença.

[email protected]

http://regispiresmag.googlepages.com/cefet

Geração de Executável 

Editor (módulo fonte em C)



Pré‐processador (novo fonte expandido)



Compilador (arquivo objeto)



Lincador (executável)

[email protected]

http://regispiresmag.googlepages.com/cefet

Exemplo 1 #include <stdio.h> /* Um Primeiro Programa */ main () { printf ("Ola! Eu estou vivo!\n"); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Exemplo 2 #include <stdio.h> main() { int Dias; /* * Declaracao de * Variaveis */ float Anos; printf("Entre com o numero 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); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Exemplo 3 #include <stdio.h> main() { int x; printf("Digite um numero"); scanf("%d",&x); printf("%d\n",x); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Exemplo 4 #include <stdio.h> main() { int x; printf("Digite um numero"); scanf("%d",&x); printf("O dobro e %d\n", 2 * x); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Introdução às funções 





Uma função é um bloco de código de programa que pode ser usado diversas vezes em sua execução. O uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C consiste, no fundo, de várias funções colocadas juntas.

[email protected]

http://regispiresmag.googlepages.com/cefet

Introdução às funções 

Argumentos 



Argumentos são as entradas que a função recebe. É através dos argumentos que passamos parâmetros para a função. As funções printf() e scanf() são funções que recebem argumentos.

[email protected]

http://regispiresmag.googlepages.com/cefet

Forma geral da função tipo_de_retorno nome_da_função(lista_de_argumentos) { código_da_função }

[email protected]

http://regispiresmag.googlepages.com/cefet

Exemplo de Função #include <stdio.h> /* Funcao simples: so imprime Ola! */ mensagem() { printf("Ola! "); } main() { mensagem(); printf("Eu estou vivo!\n"); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Exemplo de função #include <stdio.h> /* Calcula o quadrado de x */ int square(int x) { return x * x; } main() { int num; printf("Entre com um numero: "); scanf("%d", &num); printf("\n\nO quadrado e %d\n", square(num)); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Exemplo de função #include <stdio.h> int prod(int x, int y) { return (x*y); } main() { int saida; saida=prod(12, 7); printf("A saida e: %d\n", saida); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Exemplo de função #include <stdio.h> float prod(float x, float y) { return (x*y); } main() { float saida; saida=prod(45.2, 0.0067); printf("A saida e: %f\n", saida); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Exercício 

Escreva uma função para receber dois números e, depois, exibir a sua soma.

[email protected]

http://regispiresmag.googlepages.com/cefet

Solução #include <stdio.h> main() { float n1, n2; printf("Digite um numero: "); scanf("%f", &n1); printf("Digite outro numero: "); scanf("%f", &n2); printf("A soma e: %f\n", (n1 + n2)); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Entradas e Saídas 

Caracteres 

Tipo char.



Ocupa 8 bits.

#include <stdio.h> main() { char Ch; Ch='D'; printf("%c", Ch); printf("%d", Ch); system("pause"); } [email protected]

// Imprime como inteiro

http://regispiresmag.googlepages.com/cefet

Entradas e Saídas 

Para obter o caractere pressionado: 

getche() 



getch() 



Imprime o caractere na tela antes de retorná-lo. Apenas retorna o caratere pressionado sem imprimi-lo na tela.

Essas funçoes são encontradas no arquivo conio.h que somente está disponível para Windows. Não é padrão ANSI.

[email protected]

http://regispiresmag.googlepages.com/cefet

getch() #include <stdio.h> #include main() { printf("Tecle algo..."); char ch=getch(); printf("Voce pressionou a tecla %c\n", ch); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Equivalente ANSI 

Diferenças: 

Requer o pressionamento da tecla <ENTER> após a entrada de teclado.

#include <stdio.h> main() { char ch; printf("Tecle algo..."); scanf("%c", &ch); printf("Voce pressionou a tecla %c\n", ch); system("pause"); } [email protected]

http://regispiresmag.googlepages.com/cefet

printf() e scanf() 

Forma geral da função printf(): 



printf (string_de_controle,lista_de_argumentos);

Forma geral da função scanf(): 

scanf (string_de_controle,lista-de-argumentos);

[email protected]

http://regispiresmag.googlepages.com/cefet

Códigos de controle Código

Significado

%d

Inteiro

%f

Float

%c

Caractere

%s

String

%%

Coloca na tela um %

[email protected]

http://regispiresmag.googlepages.com/cefet

Formatação Numérica 

%d 

Escreve um inteiro na tela, preenchendo com espaços à esquerda para que ele ocupe pelo menos casas na tela.

printf("%4d", 10); 

Exibe: <espaco><espaco>10

[email protected]

http://regispiresmag.googlepages.com/cefet

Formatação Numérica 

%0d 

Escreve um inteiro na tela, preenchendo com zeros à esquerda para que ele ocupe pelo menos casas na tela.

printf("%04d", 10); 

Exibe: 0010

[email protected]

http://regispiresmag.googlepages.com/cefet

Formatação Numérica 

%.0d 

Escreve um inteiro na tela, preenchendo com espaços à esquerda para que ele ocupe pelo menos casas na tela e com zeros para que ele possua pelo menos comprimento .

printf("%6.04d", 10); 

Exibe: <espaço><espaço>0010

[email protected]

http://regispiresmag.googlepages.com/cefet

Formatação Numérica 

%f 

Escreve um ponto flutuante na tela, sem formatação.

printf("%f", 10.0); 

Exibe: 10.000000

[email protected]

http://regispiresmag.googlepages.com/cefet

Formatação Numérica 

%e 

Escreve um ponto flutuante na tela em notação científica.

printf("%e", 10.02545); 

Exibe: 1.002545e+01

[email protected]

http://regispiresmag.googlepages.com/cefet

Formatação Numérica 

%.<decimais>f 

Escreve um ponto flutuante na tela, com tamanho e <decimais> casas decimais. 

O ponto também conta no tamanho.

printf("%6.2f", 10.0); 

Exibe: <espaço>10.00

[email protected]

http://regispiresmag.googlepages.com/cefet

Operadores 

Atribuição (=)



Aritméticos 

*e/



%



+e-

[email protected]

http://regispiresmag.googlepages.com/cefet

Operadores Relacionais ==

igual

!=

diferente de

>

maior que

<

menor que

>=

maior ou igual

<=

menor ou igual

[email protected]

http://regispiresmag.googlepages.com/cefet

Operadores Lógicos 

&& (e)



|| (ou)



! (não)

[email protected]

http://regispiresmag.googlepages.com/cefet

Operador Ternário 

Operador que usa três argumentos:  



expr ? valor1 : valor2 Se expr avaliar for verdadeira, valor1 será o resultado da expressão. Se expr for falsa, valor2 será o resultado da expressão. int x, y, maior; ... maior = x > y ? x : y; ...

[email protected]

http://regispiresmag.googlepages.com/cefet

Operador Ternário #include <stdio.h> main() { int n1, n2; printf("Digite um numero: "); scanf("%d", &n1); printf("Digite outro numero: "); scanf("%d", &n2); printf("O maior e: %d\n", n1 > n2 ? n1 : n2; system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

Expressões lógicas 

!(a == b) é́ equivalente a a != b



!(a != b) é́ equivalente a a == b



!(a > b) é́ equivalente a a <= b



!(a < b) é́ equivalente a a >= b



!(a >= b) é́ equivalente a a < b



!(a <= b) é́ equivalente a a > b



!a && !b é equivalente a !(a || b)



!a || !b é equivalente a !(a && b)

[email protected]

http://regispiresmag.googlepages.com/cefet

Expressões 

O resultado de uma expressão lógica ou relacional é:  



0 (falso) 1 ou qualquer outro número diferente de zero (verdadeiro)

Para facilitar: 

NÃ0



S1M

[email protected]

http://regispiresmag.googlepages.com/cefet

Operadores de incremento e decremento 

Incremento (++)



Decremento (--)



a++; 



Incrementa o valor da variável a em uma unidade.

A posição do operador de incremento e decremento determina a ordem de execução do que está em seu derredor.

[email protected]

http://regispiresmag.googlepages.com/cefet

Operadores de incremento e decremento #include <stdio.h> main() { int a = 10; printf("%d", ++a); system("pause"); } #include <stdio.h> main() { int a = 10; printf("%d", a++); system("pause"); } [email protected]

http://regispiresmag.googlepages.com/cefet

Atribuições Simplificadas Comando

Exemplo

Corresponde a:

+=

a += 2

a = a + 2;

-=

a -= 2

a = a - 2;

=

a *= 2;

a = a * 2;

/=

a /= 2;

a = a / 2;

%=

a %= 2;

a = a % 2;

[email protected]

http://regispiresmag.googlepages.com/cefet

A função sizeof() 

A função sizeof(algo) retorna o tamanho, em bytes, de algo que pode ser um determinado tipo, uma variável ou um valor constante. 

printf ("%d", sizeof(int)); 

exibe 4 na tela

[email protected]

http://regispiresmag.googlepages.com/cefet

A função sizeof() #include <stdio.h> main() { printf("Tamanho de um int: %d bytes\n", sizeof(int)); printf("Tamanho de 10.25: %d bytes\n", sizeof(10.25)); char str[20] = "Maria"; printf("Tamanho de str: %d bytes\n", sizeof(str)); system("pause"); }

[email protected]

http://regispiresmag.googlepages.com/cefet

O endereço de uma variável 



Toda variável tem um endereço de memória associado a ela. O operador & (address-of) retorna o endereço de uma determinada variável: printf("%d", &valor); 

imprime o endereço da variável valor.

[email protected]

http://regispiresmag.googlepages.com/cefet

Related Documents

02 - Primeiros Passos
June 2020 25
Linguagem C
June 2020 15
Linguagem C 02 String
November 2019 15
Fila Em Linguagem C
June 2020 14

More Documents from ""