Programação de Sistemas  Linguagem C Filipe Brandão [email_address] CET – Instalação de Manutenção de Sistemas Informáticos
Índice <ul><li>Breve História do C </li></ul><ul><li>Conceitos Base </li></ul><ul><li>Função scanf </li></ul><ul><li>Funçã...
Objectivos <ul><li>Transmitir os conceitos base da linguagem </li></ul><ul><li>Verificar os diferentes tipos de variáveis ...
Aprendizagem inicial… <ul><li>Ao aprender-se uma nova linguagem de programação, normalmente estuda-se:  </li></ul><ul><ul>...
Breve História do C <ul><li>Em 1973 Dennis Ritchie reescreveu o Sistema Operativo UNIX numa linguagem de alto nível (Ling....
Características da Linguagem C <ul><li>Portabilidade  –   Entre máquinas e sistemas operativos; </li></ul><ul><li>Rapidez ...
Conceitos Base <ul><li>Em C, um programa começa com a função  main(). </li></ul><ul><li>Todas as instruções do C são escri...
Mais Conceitos Base <ul><li>As linhas começadas por # (#include, #define, etc…) não são C, mas directivas ao pré-processad...
O  C é  “ Case Sensitive ” <ul><li>O  C é &quot;Case Sensitive&quot;, isto é,  maiúsculas e minúsculas fazem diferença .  ...
A função main ( ) <ul><li>Todo programa deve ter uma função “main” e ela deve ser única! </li></ul><ul><li>A função “main”...
Estrutura de um programa C <ul><li>/* Primeiro Programa em C */  comentários </li></ul><ul><li>#include <stdio.h>  /*bibli...
O Caracter Especial  <ul><li>O símbolo  é utilizado para retirar o significado especial que um caracter tem. </li></ul><ul...
Variáveis <ul><li>A declaração de variáveis tem que ser sempre realizada antes da sua utilização e antes de qualquer instr...
Variáveis – atribuição <ul><li>Sempre que uma variável é declara, estamos a solicitar ao compilador para reservar espaço e...
Variáveis <ul><li>Inteiros –  int </li></ul><ul><li>As variáveis declaradas do tipo inteiro são utilizadas para armazenar ...
A função  scanf <ul><li>A função  scanf  (leitura formatada) funciona de maneira semelhante è função printf. Depois de esp...
A função  printf <ul><li>Essa função tem por finalidade imprimir dados na tela. Isto é feito através da sintaxe: </li></ul...
Funções getchar() e putchar() <ul><li>getchar() </li></ul><ul><li>Esta função é responsável por ler um caracter do teclado...
Formatos de leitura e escrita (resumo) %f ou %e ou %E double %f ou %e ou %E float %lu unsigned long int %u unsigned int %u...
Inteiros e variações <ul><li>O   tamanho em  bytes  de um inteiro varia de arquitectura para arquitectura, sendo os valore...
Características das variáveis <ul><li>Como garantir que um programa usa sempre 2 ou 4 Bytes para armazenar um inteiro (uma...
Tamanho… <ul><li>O prefixo signed não é necessário pois, por defeito os inteiros são criados com sinal (signed). </li></ul...
Reais – float e double <ul><li>As variáveis declaradas do tipo float e double são utilizadas para armazenar valores numéri...
Caracteres - char <ul><li>O tipo  char  permite armazenar  um único caracter. </li></ul><ul><li>Um char é sempre armazenad...
Testes e Condições <ul><li>Em C o valor lógico Falso é representado por 0 (zero) </li></ul><ul><li>O valor lógico Verdade ...
Estrutura de Decisão if - else <ul><li>O comando if-else é um dos mais básicos e úteis comandos de qualquer linguagem de p...
if – else <ul><li>if – else </li></ul><ul><li>Sintaxe: </li></ul><ul><li>if (condição) </li></ul><ul><li>instrução1; </li>...
Exercícios (Sizeof) <ul><li>Exercício : Escreva um programa que indique qual o número de  Bytes  que ocupam todos os tipos...
Upcoming SlideShare
Loading in …5
×

Cet P Sistemas Linguagem C Introducao

2,462 views

Published on

Published in: Business

Cet P Sistemas Linguagem C Introducao

  1. 1. Programação de Sistemas Linguagem C Filipe Brandão [email_address] CET – Instalação de Manutenção de Sistemas Informáticos
  2. 2. Índice <ul><li>Breve História do C </li></ul><ul><li>Conceitos Base </li></ul><ul><li>Função scanf </li></ul><ul><li>Função printf </li></ul><ul><li>Estrutura de um programa </li></ul><ul><li>Tipos de variáveis </li></ul><ul><li>Estruturas de Decisão </li></ul><ul><li>… </li></ul>
  3. 3. Objectivos <ul><li>Transmitir os conceitos base da linguagem </li></ul><ul><li>Verificar os diferentes tipos de variáveis </li></ul><ul><li>Aprender a receber inputs do utilizador e emitir outputs para o exterior. </li></ul>
  4. 4. Aprendizagem inicial… <ul><li>Ao aprender-se uma nova linguagem de programação, normalmente estuda-se: </li></ul><ul><ul><li>sintaxe </li></ul></ul><ul><ul><li>tipos de dados </li></ul></ul><ul><ul><li>operadores </li></ul></ul><ul><ul><li>funções </li></ul></ul><ul><ul><li>entrada e saída de dados </li></ul></ul><ul><ul><li>bibliotecas </li></ul></ul>
  5. 5. Breve História do C <ul><li>Em 1973 Dennis Ritchie reescreveu o Sistema Operativo UNIX numa linguagem de alto nível (Ling. C). </li></ul><ul><li>Surgem diversas implementações utilizando C, porém os códigos gerados eram incompatíveis. </li></ul><ul><li>ANSI (American National Standard Institute), em 1983 standartizou a linguagem C. </li></ul>
  6. 6. Características da Linguagem C <ul><li>Portabilidade – Entre máquinas e sistemas operativos; </li></ul><ul><li>Rapidez – Consegue obter performances semelhantes às obtidas pelo Assembly, usando instruções de alto nível; </li></ul><ul><li>Popular – Internacionalmente conhecida e utilizada; </li></ul><ul><li>Simples – Sintaxe simples e o nº de palavras reservadas, tipo de dados básico, operadores é diminuto; </li></ul><ul><li>Modular – Permite o desenvolvimento modular de aplicações, possibilidade de funcionar em módulos; </li></ul><ul><li>C é uma linguagem compilada – lê todo o código fonte e gera o código objecto (ling. máquina) uma única vez. </li></ul>
  7. 7. Conceitos Base <ul><li>Em C, um programa começa com a função main(). </li></ul><ul><li>Todas as instruções do C são escritas com letra minúscula, e a utilização de letras maiúsculas só deverá ser feita, quando desejarmos utilizar variáveis, mensagens ou funções escritas por nós. </li></ul><ul><li>O código a executar é colocado entre { }. </li></ul><ul><li>Um bloco é formado por qualquer conjunto de instruções entre { }. </li></ul><ul><li>Cada instrução deve ser seguida de um ( ; ). </li></ul><ul><li>A disposição do código é arbitrária e depende das preferências de cada programador. </li></ul><ul><li>O C faz distinção entre minúsculas e maiúsculas – diz-se que é Case Sensitive . </li></ul><ul><li>As strings em C são delimitadas pelo caracter “. </li></ul><ul><li>Para escrever mensagem no ecrã usa-se a função printf() . </li></ul><ul><li>A função printf não faz parte da linguagem C. Pertence à biblioteca de funções. </li></ul>
  8. 8. Mais Conceitos Base <ul><li>As linhas começadas por # (#include, #define, etc…) não são C, mas directivas ao pré-processador e por isso não têm ; no final. </li></ul><ul><li>Para termos acesso a esta e outras funções de input/output devemos incluir nos nossos programas o ficheiro stdio.h através da directiva ao pré-processador #include <stdio.h>. </li></ul><ul><li>A representação de caracteres especiais faz-se através de um conjunto de dois ou mais caracteres, sendo em geral o primeiro o . </li></ul><ul><li>Os comentários são escritos entre /* e */ e são ignorados pelo compilador. </li></ul><ul><li>Não podem existir comentários dentro de comentários. </li></ul>
  9. 9. O C é “ Case Sensitive ” <ul><li>O C é &quot;Case Sensitive&quot;, isto é, maiúsculas e minúsculas fazem diferença . </li></ul><ul><li>Se se declarar uma variável com o nome soma ela será diferente de Soma , SOMA , SoMa ou sOmA . </li></ul><ul><li>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 os irá interpretar como sendo comandos, mas sim como variáveis. </li></ul>
  10. 10. A função main ( ) <ul><li>Todo programa deve ter uma função “main” e ela deve ser única! </li></ul><ul><li>A função “main” é o ponto de partida quando o programa é executado. </li></ul>
  11. 11. Estrutura de um programa C <ul><li>/* Primeiro Programa em C */ comentários </li></ul><ul><li>#include <stdio.h> /*biblioteca de E/S */ </li></ul><ul><li>main() /*função principal – inicio do </li></ul><ul><li>programa*/ </li></ul><ul><li>{ /*marca início da função*/ </li></ul><ul><li>printf(“Meu primeiro programa em C ”); </li></ul><ul><li>/*escreve no monitor e muda de linha*/ </li></ul><ul><li>} /*marca o fim da função*/ </li></ul>
  12. 12. O Caracter Especial <ul><li>O símbolo é utilizado para retirar o significado especial que um caracter tem. </li></ul><ul><li>Exemplo: No caso das “, retira-lhe o significado delimitador, passando a ser considerado simplesmente como o carácter aspas. </li></ul>Sinal sonoro a Sinal sonoro 7 O caracter % %% O caracter ? ? O caracter “ ” O caracter Tabulação vertical v Tabulação Horizontal Mudança de linha Backspace 
  13. 13. Variáveis <ul><li>A declaração de variáveis tem que ser sempre realizada antes da sua utilização e antes de qualquer instrução. </li></ul><ul><li>O tipo que lhes está associado indica o número de Bytes que irão ser utilizados para guardar um valor nessa variável. </li></ul><ul><li>Quando uma variável é definida fica sempre com um valor, o qual resulta do estado aleatório dos Bits que a constituem. </li></ul><ul><li>Os tipos de dados básicos do C são: char, int, float e double. </li></ul><ul><li>Nomes de variáveis – regras </li></ul><ul><li>O nome de uma variável pode ser constituído por letras, dígitos e ainda pelo _ (underscore). </li></ul><ul><li>O primeiro caracter não pode ser um dígito. Não é aconselhável a utilização deste como primeiro caracter. </li></ul><ul><li>maiúsculas e minúsculas são distintas. </li></ul><ul><li>Não devem ser utilizadas palavras reservadas para nomes de variáveis. (ex. main, int, float, etc.). </li></ul><ul><li>Não é aconselhável a utilização de caracteres acentuados. </li></ul>
  14. 14. Variáveis – atribuição <ul><li>Sempre que uma variável é declara, estamos a solicitar ao compilador para reservar espaço em memória para a armazenar. Esse espaço passará a ser referenciado através do nome da variável. </li></ul><ul><li>No caso de um inteiro, o espaço em Bytes que lhe é reservado varia com as arquitecturas das máquinas: 2 bytes ou 4 bytes. </li></ul><ul><li>Independentemente do número de bytes que ocupe, o nome de uma variável referencia a totalidade do espaço ocupado pela variável. </li></ul><ul><li>Uma variável poderá ser inicializada com um valor através de uma operação de atribuição. </li></ul><ul><li>Exemplo: </li></ul><ul><li>int num; </li></ul><ul><li>num = 12; </li></ul><ul><li>Uma variável pode automaticamente ser inicializada quando se faz a sua declaração. </li></ul><ul><li>Exemplo: </li></ul><ul><li>int num=12; </li></ul>
  15. 15. Variáveis <ul><li>Inteiros – int </li></ul><ul><li>As variáveis declaradas do tipo inteiro são utilizadas para armazenar valores inteiros (sem parte fraccionária), positivos ou negativos. </li></ul><ul><li>Nota: Qualquer operação entre inteiros devolve um inteiro </li></ul><ul><li>Na função printf sempre que quisermos escrever um inteiros, devemos substituir o valor desse inteiro por um formato de escrita, colocando %d no local onde queremos escrever os inteiros. </li></ul>Resto da Divisão Inteira (Módulo) % Divisão Inteira / Multiplicação * Subtracção - Soma + Descrição Operação
  16. 16. A função scanf <ul><li>A função scanf (leitura formatada) funciona de maneira semelhante è função printf. Depois de especificados todos os formatos de leitura na string, devem ser colocadas todas as variáveis correspondentes precedidas de um &. A função scanf não deve conter outros caracteres que não sejam os caracteres indicadores de formatos. </li></ul><ul><li>Exemplo: </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>main() </li></ul><ul><li>{ </li></ul><ul><li>int num1,num2; </li></ul><ul><li>printf(“Introduza dois números: ”); </li></ul><ul><li>scanf(“%d%d”,&num1,&num2); </li></ul><ul><li>printf(“O resultado de %d + %d = %d”,num1,num2,num1+num2); </li></ul><ul><li>} </li></ul>
  17. 17. A função printf <ul><li>Essa função tem por finalidade imprimir dados na tela. Isto é feito através da sintaxe: </li></ul><ul><li>printf(“expressão de controle”, lista de argumentos); </li></ul><ul><li>Na “expressão de controle” são inseridos todos os caracteres a serem exibidos na tela e/ou códigos de formatação, responsáveis por indicar o formato em que os argumentos devem ser impressos. </li></ul><ul><li>Esses argumentos devem estar incluídos na “lista de argumentos” e caso contenha mais de um devem ser separados por virgula. </li></ul><ul><li>Exemplo: </li></ul><ul><li>Printf(“A soma é %d”, soma”); </li></ul>
  18. 18. Funções getchar() e putchar() <ul><li>getchar() </li></ul><ul><li>Esta função é responsável por ler um caracter do teclado. </li></ul><ul><li>A função original getchar() baseado em UNIX armazena a entrada no buffer até que seja pressionado ENTER. </li></ul><ul><li>putchar() </li></ul><ul><li>Escreve na tela um caracter a partir da posição actual do cursor. </li></ul>
  19. 19. Formatos de leitura e escrita (resumo) %f ou %e ou %E double %f ou %e ou %E float %lu unsigned long int %u unsigned int %uh unsigned short int %ld long int %hd short int %d ou %i int %c char Formato Tipo
  20. 20. Inteiros e variações <ul><li>O tamanho em bytes de um inteiro varia de arquitectura para arquitectura, sendo os valores mais habituais 2 ou 4 bytes. </li></ul><ul><li>A função sizeof permite saber qual a dimensão de um inteiro (ou qualquer outro tipo ou variável). Sintaxe: sizeof(<tipo)> </li></ul><ul><li>Exercício : Escreva um programa que indique qual o número de Bytes que ocupam todos os tipos básicos do C (char, int, float e double). </li></ul>
  21. 21. Características das variáveis <ul><li>Como garantir que um programa usa sempre 2 ou 4 Bytes para armazenar um inteiro (uma vez que o tamanho do inteiro varia de máquina para máquina)? </li></ul><ul><li>Existem 4 prefixos para melhor definir as características da variável: </li></ul><ul><li>short – inteiro pequeno (2 Bytes) </li></ul><ul><li>long – inteiro grande (4 Bytes) </li></ul><ul><li>signed – inteiro com sinal (positivos e negativos) </li></ul><ul><li>unsigned – inteiro sem sinal (só positivos) </li></ul><ul><li>Exemplo: </li></ul><ul><li>short int idade; </li></ul><ul><li>O formato de leitura e escrita de variáveis inteiras short e long nas funções scanf e printf deve ser precedida dos prefixos h (short) e l (long). </li></ul>
  22. 22. Tamanho… <ul><li>O prefixo signed não é necessário pois, por defeito os inteiros são criados com sinal (signed). </li></ul><ul><li>O formato de leitura e escrita devariáveis inteiras sem sinal (unsigned int) nas funções scanf e printf é %u. </li></ul><ul><li>Supondo que o tamanho de um int são dois bytes: </li></ul>4 294 967 295 0 4 unsigned long int 65 535 0 2 unsigned short int 65 635 0 2 unsigned int 2 147 483 647 -2 147 483 648 4 long int 32 767 -32 768 2 short int 32 767 -32 768 2 int Valor máximo Valor mínimo Nº de Bytes Tipo de variável
  23. 23. Reais – float e double <ul><li>As variáveis declaradas do tipo float e double são utilizadas para armazenar valores numéricos com parte fraccionária (também denominados reais ou de vírgula flutuante). </li></ul><ul><li>A dimensão do float é normalmente 4 bytes enquanto do double é de 8 bytes. </li></ul><ul><li>O formato de leitura e escrita para reais é %f (%.2f apresenta o resultado com 2 casas decimais). </li></ul><ul><li>Qualquer operação em que pelo menos um dos operandos seja real produz um resultado do tipo real. </li></ul><ul><li>O operador % (módulo) não pode ser aplicado a operadores do tipo real. </li></ul><ul><li>Exercício </li></ul><ul><li>Escrever um programa que calcule o perímetro e a área de uma circunferência. </li></ul>
  24. 24. Caracteres - char <ul><li>O tipo char permite armazenar um único caracter. </li></ul><ul><li>Um char é sempre armazenado num Byte. </li></ul><ul><li>A representação de caracteres em C faz-se utilizando a ‘ (plica). </li></ul><ul><li>A representação de caracteres na função printf e scanf faz-se com %c. </li></ul><ul><li>Exemplos </li></ul><ul><li>1. </li></ul><ul><li>char var1=‘A’ </li></ul><ul><li>2. </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>main() </li></ul><ul><li>{ </li></ul><ul><li>printf(“olá turma ”); </li></ul><ul><li>} </li></ul>
  25. 25. Testes e Condições <ul><li>Em C o valor lógico Falso é representado por 0 (zero) </li></ul><ul><li>O valor lógico Verdade é qualquer valor que seja diferente de zero. </li></ul><ul><li>Operadores relacionais Operadores lógicos </li></ul>Diferente != Menor ou igual <= Menor < Maior ou igual >= Maior > Igualdade == Nome Operador NOT ! OR || AND && Significado Operador
  26. 26. Estrutura de Decisão if - else <ul><li>O comando if-else é um dos mais básicos e úteis comandos de qualquer linguagem de programação de alto nível. No C ele tem a seguinte estrutura: </li></ul><ul><li>if (condição) { comandos; </li></ul><ul><li>} </li></ul><ul><li>else { </li></ul><ul><li>comandos; </li></ul><ul><li>} </li></ul>
  27. 27. if – else <ul><li>if – else </li></ul><ul><li>Sintaxe: </li></ul><ul><li>if (condição) </li></ul><ul><li>instrução1; </li></ul><ul><li>[else instrução2;] </li></ul><ul><li>A componente else do if é facultativa. </li></ul><ul><li>A condição do if tem que estar sempre dentro de parêntesis. </li></ul><ul><li>Tanto a instrução1 como a intrução2 são seguidas de (;) </li></ul><ul><li>Bloco de instruções </li></ul><ul><li>Caso se deseje que um conjunto de instruções seja realizado quer no if quer no else , estas devem ser escritas entre {} . </li></ul>
  28. 28. Exercícios (Sizeof) <ul><li>Exercício : Escreva um programa que indique qual o número de Bytes que ocupam todos os tipos básicos do C (char, int, float e double). </li></ul><ul><li>#include <stdio.h> </li></ul><ul><li>main() </li></ul><ul><li>{ </li></ul><ul><li>printf(&quot;tamanho em Bytes de um char = %d &quot;,sizeof(char)); </li></ul><ul><li>printf(&quot;tamanho em Bytes de um int = %d &quot;,sizeof(int)); </li></ul><ul><li>printf(&quot;tamanho em Bytes de um float = %d &quot;,sizeof(float)); </li></ul><ul><li>printf(&quot;tamanho em Bytes de um double = %d &quot;,sizeof(double)); </li></ul><ul><li>} </li></ul>

×