A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PROGRAMA ÃO C A linguagem C foi primeiramente criada por Dennis M. Ritchie e Ken Thompson no laboratório Bell em 1972, baseado na linguagem B que era uma.

Apresentações semelhantes


Apresentação em tema: "PROGRAMA ÃO C A linguagem C foi primeiramente criada por Dennis M. Ritchie e Ken Thompson no laboratório Bell em 1972, baseado na linguagem B que era uma."— Transcrição da apresentação:

1 PROGRAMA ÃO C A linguagem C foi primeiramente criada por Dennis M. Ritchie e Ken Thompson no laboratório Bell em 1972, baseado na linguagem B que era uma evolução de BCPL. C é uma linguagem vitoriosa como ferramenta na programação de qualquer tipo de sistema (Sistema operacionais, planilhas eletrônicas, processadores de texto, gerenciadores de banco de dados, processadores gráficos, sistemas de transmissão de dados, para solução de problemas de engenharia ou física etc.) Exemplo o sistema operacional UNIX desenvolvido em C.

2 Compilado - Interpretado A escolha de uma linguagem de programação para se usar um computador depende antes de tudo da existência de um programa compilador (que traduza o algoritmo escrito na linguagem escolhida para a linguagem de máquina) ou de um programa interpretador (que interprete cada comando do programa e execute uma série de instruções que a ele correspondem). Existindo compiladores ou interpretadores para diversas linguagens, a escolha pode ser linguagem preferida ou mais familiar para o programador, por aquela melhor implementada no computador, por aquela mais adequada para o tipo de aplicação que se deseja fazer.

3 Exemplo de programa em C main(void) { }

4 Exemplo de programa em C #include main(void) { printf ("Meu primeiro programa em C!\n"); system("pause"); }

5 Identificadores Um identificador é o nome dado às informações de caráter variável. Existem algumas regras de formação de identificadores que devem ser obedecidas. 1.Devem começar com um caracter alfabético 2.Podem ser seguidos por mais caracteres alfabéticos ou numéricos 3.Não devem ser usados caracteres especiais ou símbolos de operadores aritméticas 4.Não podem ser palavras reservadas. Identificadores válido: ano, idade, U2, nota1, nota_2 Identificadores inválidos: C&A, 4x, nota 1, nota 2, a/b, a#b, A+B

6 Saída Formatada – printf() A função printf() (print formated) imprime dados da lista_de_argumentos formatados de acordo com a string_de_controle. Sintaxe: printf(strin_de controle, lista_de_argumento)

7 Exemplo - printf #include main(void) { int val1,val2,soma; val1=2; val2=6; soma=val1+val2; printf("A soma e: %d\n\n\n", soma); /*Imprime o valor da soma*/ system("pause"); }

8 Exemplo de programa em C #include main(void) { int val1,val2; val1=2; val2=6; printf("A soma e: %d\n\n\n", (val1+val2)); /*Imprime o valor da soma*/ system("pause"); }

9 TipoNum de bits Formato para leitura com scanf Intervalo InicioFim char 8%c-128127 unsigned char8%c0255 signed char8%c-128127 int 16%i-32.76832.767 unsigned int16%u065.535 signed int16%i-32.768 32.767 short int16%hi-32.76832.767 unsigned short int16%hu065.535 signed short int16%hi-32.76832.767 long int32%li-2.147.483.6482.147.483.647 signed long int32%li-2.147.483.6482.147.483.647 unsigned long int32%lu04.294.967.295 float 32%f3,4E-383.4E+38 double64%lf1,7E-3081,7E+308 long double80%Lf3,4E-4932 3,4E+4932 Tipos de Dados

10 lista de argumentos da função printf() CódigoSignificado %dInteiro %fFloat %cCaractere %sString %Coloca na tela um %

11 Variáveis de ponto Flutuante Os números de ponto flutuante são guardados na memória em duas partes. Estas duas partes são chamadas de mantissa e expoente. A mantissa é o valor do número e o expoente é a potência que irá aumentá-lo. Por exemplo, 12345 é representado por.12345e5 onde o número que segue o (e) é o expoente, e 12345 é o valor do número. +.123455 sinalfraçãoexpoente 3 bytes1 byte

12 #include 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); system("pause"); } Declaração de float

13 Declaração de char #include main () { char Ch; Ch='D'; printf ("%c",Ch); system("pause"); } Veremos com mais detalhes as variáveis do tipo char

14 Operadores Aritméticos +Soma (inteira e ponto flutuante)2+3; x+y; z+2 -Subtração unário-6; g-k; u-4 *Multiplicação (inteira e ponto flutuante) 8*4; x*y; 2*x /Divisão (inteira e ponto flutuante) 2/7; x/z; z/2 =Atribuiçãox=z+y; x=2 %Resto de divisão (de inteiros) 13 % 2 (resulta em 1) ++Incremento (inteiro e ponto flutuante) x++ (equivale a x=x+1) --Decremento (inteiro e ponto flutuante)x-- (equivale a x=x-1) pow(x,y)Potenciação (x y )pow(2,4); pow(z,3) sqrt(x)Radiciação( )sqrt(4); sqrt(x)

15 OPERADORES Aritméticos OperadorAçã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) Ação – Depende da Biblioteca #include powpow(4,2)4242 sqrtsqrt(4)

16 Operadores Aritméticos Parênteses mais internos Powsqrt++ -- - (unário) */% + -

17 Os operadores relacionais do C realizam comparações entre variáveis. ==Igual ax==y; x==z >Maior que3>2; y>x <Menor quex<y; 2<x >=Maior ou igual a8>=7; x>=z; z>=2 <=Menor ou igual a5<=6; x<=z !=Diferente4!=3; x!=z Operadores Lógicos !Negação! (4*3== 2*6 && 4<5) &&e, and4*3== 2*6 && 4<5 ||ou, or15%4>19%6 || 3==4 Operadores Relacionais

18 Operadores Relacionais e Lógicos ! >>=<<= == != && ||

19 Leitura Formatada – scanf() A função scanf() (scan formated) permite a entrada de dados numéricos, caracteres e string e sua respectiva atribuição às variáveis. Esta função é dita de entrada formatada pois os doados de entrada são formatados pela string_de_controle a um determinado tipo de variável (int, float, char,...). A função scanf() tem seguinte forma geral: Sintaxe: scanf(string_de_controle, lista_de_argumentos)

20 Exemplo - scanf #include main() { int num1,num2; printf(“Informe o primeiro numero: ”); scanf ("%d", &num1); printf(“Informe o segundo numero: ”); scanf ("%d", &num2); printf("A soma e: %d\n\n\n", num1+num2); /*Imprime o valor da soma*/ system("pause"); } No programa acima, as variáveis num1 e num2 são precedidas pelo símbolo &. O símbolo & é conhecido como operador de endereçamento. Sempre que uma variável for precedida por este símbolo, o compilador usa o endereço da variável especificada em lugar do valor armazenado na variável. A função scanf() foi escrita para receber o endereço da variável a ser preenchida

21 scanf #include main() { int num1,num2,soma; printf(“Informe o primeiro numero: ”); scanf ("%d", &num1); printf(“Informe o segundo numero: ”); scanf ("%d", &num2); soma=num1+num2; printf("A soma e: %d\n\n\n", soma); /*Imprime o valor da soma*/ system("pause"); }

22 lista de argumentos da função scanf() TipoDefine o tipo de dado a ser lido (Requerido) %dInteiro decimal (int) %fPonto flutuante (float) %sString (char) %cCaracter (char) %oInteiro octal (int) %xInteiro hexadecimal (int) %iInteiro decimal de qualquer formato (int) %uInteiro decimal sem sinal (unsigned int)

23 Estrutura de decisão - if O comando if representa uma tomada de decisão do tipo "SE isto ENTÃO aquilo". A sua forma geral é: if (condição) declaração; A condição do comando if é uma expressão que será avaliada. Se o resultado for zero a declaração não será executada. Se o resultado for qualquer coisa diferente de zero a declaração será executada. A declaração pode ser um bloco de código ou apenas um comando. É interessante notar que, no caso da declaração ser um bloco de código, não é necessário (e nem permitido) o uso do ; no final do bloco.

24 Exemplo if #include main() { int num1,num2; printf(“Informe o primeiro numero: ”); scanf ("%d", &num1); printf(“Informe o segundo numero: ”); scanf ("%d", &num2); if ((num1+num2)==10) { printf(“A soma e igual a 10”); } system("pause"); }

25 Exemplo if #include main() { int num1,num2,soma; printf(“Informe o primeiro numero: ”); scanf ("%d", &num1); printf(“Informe o segundo numero: ”); scanf ("%d", &num2); soma=num1+num2; if (soma==10) { printf(“A soma e igual a 10”); } system("pause"); }

26 Estrutura de decisão – if... else - O else Podemos pensar no comando else como sendo um complemento do comando if. O comando if completo tem a seguinte forma geral: if (condição) declaração_1; else declaração_2; A expressão da condição será avaliada. Se ela for diferente de zero a declaração 1 será executada. Se for zero a declaração 2 será executada. É importante nunca esquecer que, quando usamos a estrutura if-else, estamos garantindo que uma das duas declarações será executada. Nunca serão executadas as duas ou nenhuma delas.

27 Exemplo if... else #include main() { int num1,num2,soma; printf(“Informe o primeiro numero: ”); scanf ("%d", &num1); printf(“Informe o segundo numero: ”); scanf ("%d", &num2); soma=num1+num2; if (soma==10) { printf(“A soma e igual 10”); } else { printf(“A soma e diferente 10”); } system("pause"); }

28 Exemplo if... else #include main(void) { int num1,num2,soma; printf(“Informe o primeiro numero: ”); scanf ("%d", &num1); printf(“Informe o segundo numero: ”); scanf ("%d", &num2); soma=num1+num2; if (soma==10) { printf(“A soma e igual 10”); } else if (soma>10) { printf(“A soma e maior que 10”); } else { printf(“A soma e maior que 10”); } system("pause"); }

29 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. Uma curiosidade: a linguagem de programação C++ tem este nome pois ela seria um "incremento" da linguagem C padrão. A linguagem C++ é igual à linguagem C só que com extensões que permitem a programação orientada a objeto, o que é um recurso extra. EXPRESSÕES

30 OperadorAção &&AND (E) ||OR (OU) ! NOT (NÃO ) int i = 5, j =7; if ( (i > 3) && ( j <= 7) && ( i != j) ) j++; Teste - Rápido

31 Curiosidade if (a>0) b=-150; else b=150; pode ser simplificada usando-se o operador ? da seguinte maneira : b=a>0?-150:150;

32 Comando swich 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 é:if-elseif switch (variável) { case constante_1: declaração_1; break; case constante_2: declaração_2; break;... case constante_n: declaração_n; break; default declaração_default; }

33 Exemplo swich #include main () { int num; printf ("Digite um numero: "); scanf ("%d",&num); switch (num) { case 9: printf ("\n\nO numero e igual a 9.\n"); break; case 10: printf ("\n\nO numero e igual a 10.\n"); break; case 11: printf ("\n\nO numero e igual a 11.\n"); break; default: printf ("\n\nO numero nao e nem 9 nem 10 nem 11.\n"); } system(“pause”); }

34 Comando for O for na linguagem C é bastante flexível. Temos acesso à inicialização, à condição e ao incremento. Qualquer uma destas partes do for pode ser uma expressão qualquer do C, desde que ela seja válida. (inicialização;condição;incremento) declaração;

35 Exemplo for #include main () { int i; for (i=0;i<=100;i++) printf ( " Este e o numero: %d \n ",i); system( " pause " ); }

36 Comando while A estrutura while testa uma condição. Se esta for verdadeira a declaração é executada e faz-se o teste novamente, e assim por diante. Assim como no caso do for, podemos fazer um loop infinito. Para tanto basta colocar uma expressão eternamente verdadeira na condição. Pode-se também omitir a declaração e fazer um loop sem conteúdo.for while (condição) declaração;

37 Exemplo while #include main () { int i = 0; while ( i < 100) { printf(" %d", i); i++; } system("pause"); }

38 Comando do-while a estrutura do-while executa a declaração, testa a condição e, se esta for verdadeira, volta para a declaração. A grande novidade no comando do-while é que ele, ao contrário do for e do while, garante que a declaração será executada pelo menos uma vez. while (condição) declaração;forwhile do { declaração; } while (condição);

39 #include main () { int i=0; do { printf ("\t %d ",i); i++; } while (i<=100); system("pause"); } Exemplo do while

40 Exemplo do-while #include main () { int i; do { printf ("\n\nEscolha a fruta pelo numero:\n\n"); printf ("\t(1)...Mamao\n"); printf ("\t(2)...Abacaxi\n"); printf ("\t(3)...Laranja\n\n"); scanf("%d", &i); } while ((i 3)); switch (i) { case 1: printf ("\t\tVoce escolheu Mamao.\n"); break; case 2: printf ("\t\tVoce escolheu Abacaxi.\n"); break; case 3: printf ("\t\tVoce escolheu Laranja.\n"); break; } system("pause"); }

41 char e; Revisão - Declaração de variável - char #include main () { char ch; ch='D'; printf ("%c",ch); } ? #include main () { char ch; scanf("%c", &ch); printf (“Voce pressionou a %c",ch); }

42 STRING #include main () { char ch[14]; printf( " Escreve uma palavra " ); scanf ( " %s ",&ch); printf ( " \n\n%s",ch); system(“pause”); } PRODUCAO\0

43 STRING #include main () { char ch[14]; printf("Escreve uma palavra"); scanf (“%s”,&ch); printf (“\n\n%c",ch[0]); system(“pause”); } PRODUCA\0 012345678910111213

44 STRING #include main () { char ch[14]; printf("Escreve uma palavra"); scanf (“%s”,&ch); ch[3]=‘Y’; printf (“\n\n%s",ch); system(“pause”); } PRODUCAO\0 Opções para leitura de string scanf gets fgets

45 STRING #include main () { char string[100]; /* String, ate' 99 caracteres */ int i, cont; printf("\n\nDigite uma frase: "); gets(string); /* Le a string */ printf("\n\nFrase digitada:\n%s", string); cont = 0; for (i=0; string[i] != '\0'; i=i+1) { if ( string[i] == 'c' ) /* Se for a letra 'c' */ cont = cont +1; /* Incrementa o contador de caracteres */ } printf("\nNumero de caracteres c = %d", cont); system (“pause”); }

46 STRCPY A função strcpy() copia a string-origem para a string- destino. Seu funcionamento é semelhante ao da rotina apresentada na seção anterior. As funções apresentadas nestas seções estão no arquivo cabeçalho string.h. A seguir apresentamos um exemplo de uso da função strcpy():seção anterior #include main () { char text1[50],text2[50]; printf ("Entre com uma palavra: "); scanf(" %s",&text1); strcpy (text2,text1); printf ("\n\n%s %s\n\n",text1,text2); system ("pause"); } Sua forma geral é: strcpy (string_destino,string_origem);

47 STRCAT A string de origem permanecerá inalterada e será anexada ao fim da string de destino. #include main () { char text1[50],text2[50]; printf ("Entre com uma palavra: "); scanf(" %s",&text1); printf ("Entre com outa palavra: "); scanf(" %s",&text2); strcat (text2,text1); printf ("\n\n%s \n\n",text2); system ("pause"); } A função strcat() tem a seguinte forma geral: strcat (string_destino,string_origem);

48 STRLEN A função strlen() retorna o comprimento da string fornecida. O terminador nulo não é contado. Isto quer dizer que, de fato, o comprimento do vetor da string deve ser um a mais que o inteiro retornado por strlen(). #include main () { char text1[50]; int tamanho; printf ("Entre com uma palavra: "); scanf(" %s",&text1); tamanho=strlen(text1); printf ("\n A palavra possui %d letras\n\n ",tamanho); system ("pause"); } Sua forma geral é: strlen (string);

49 VETOR #include main () { int vr[11]; scanf (“%d”,vr[8]); printf (“\n\n%d",vr[8]); sytem(“pause”); } 012345678910

50 MATRIZ -Matrizes bidimensionais Já vimos como declarar matrizes unidimensionais (vetores). Vamos tratar agora de matrizes bidimensionais. A forma geral da declaração de uma matriz bidimensional é muito parecida com a declaração de um vetor: tipo_da_variável nome_da_variável [altura][largura]; É muito importante ressaltar que, nesta estrutura, o índice da esquerda indexa as linhas e o da direita indexa as colunas. Quando vamos preencher ou ler uma matriz no C o índice mais à direita varia mais rapidamente que o índice à esquerda. Mais uma vez é bom lembrar que, na linguagem C, os índices variam de zero ao valor declarado, menos um; mas o C não vai verificar isto para o usuário. Manter os índices na faixa permitida é tarefa do programador. Abaixo damos

51 MATRIZ #include main () { int mtrx [20][10]; int i,j,count; count=1; for (i=0;i<20;i++) for (j=0;j<10;j++) { mtrx[i][j]=count; count++; } system("pause"); }

52 MATRIZ STRING -Matrizes de strings Matrizes de strings são matrizes bidimensionais. Imagine uma string. Ela é um vetor. Se fizermos um vetor de strings estaremos fazendo uma lista de vetores. Esta estrutura é uma matriz bidimensional de chars. Podemos ver a forma geral de uma matriz de strings como sendo:chars char nome_da_variável [num_de_strings][compr_das_strings]; Aí surge a pergunta: como acessar uma string individual? Fácil. É só usar apenas o primeiro índice. Então, para acessar uma determinada string faça: nome_da_variável [índice]

53 MATRIZ STRING #include main () { char texto [5][100]; int count; for (count=0;count<5;count++) { printf ("\n\nDigite uma palavra: "); scanf(“ %s",&texto[count]); } printf ("\n\n\nAs palavras que voce digitou foram:\n\n"); for (count=0;count<5;count++) printf("%s\n",texto[count]); system("pause"); }

54 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. Introdução a Função #include void mensagem (void) /* Funcao simples: imprime Ola! */ { printf ("Ola! "); } main (void) { mensagem(); printf ("Eu estou vivo!\n"); system("pause"); }

55 Introdução a Função #include void prod (float x,float y) { printf(“O valor da e: %f”,x*y); } main (void) { float saida; prod (45.2,0.0067); system(“pause”); }

56 Introdução a Função #include 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”); }

57 Introdução a Função #include float prod (float x,float y) { return (x*y); } main () { float saida,valor1,valor2; printf(“Informe o primeiro valor: ”); scanf(“%f”,&valor1); printf(“\n\nInforme o segundo valor: ”); scanf(“%f”,&valor2); saida=prod (valor1,valor2); printf ("A saida e: %f\n",saida); system (“pause”); }

58 Comando - break O Comando break Nós já vimos dois usos para o comando break: interrompendo os comandos switch e for. Na verdade, estes são os dois usos do comando break: ele pode quebrar a execução de um comando (como no caso do switch) ou interromper a execução de qualquer loop (como no caso do for, do while ou do do while). O break faz com que a execução do programa continue na primeira linha seguinte ao loop ou bloco que está sendo interrompido. switchfor Observe que um break causará uma saída somente do laço mais interno. Por exemplo:

59 Comando - continue O Comando continue O comando continue pode ser visto como sendo o oposto do break. Ele só funciona dentro de um loop. Quando o comando continue é encontrado, o loop pula para a próxima iteração, sem o abandono do loop, ao contrário do que acontecia no comando break. O programa abaixo exemplifica o uso do continue:break

60 Comando - goto O Comando goto Vamos mencionar o goto apenas para que você saiba que ele existe. O goto é o último comando de controle de fluxo. Ele pertence a uma classe à parte: a dos comandos de salto incondicional. O goto realiza um salto para um local especificado. Este local é determinado por um rótulo. Um rótulo, na linguagem C, é uma marca no programa. Você dá o nome que quiser a esta marca. Podemos tentar escrever uma forma geral: nome_do_rótulo:.... goto nome_do_rótulo;.... Devemos declarar o nome do rótulo na posição para a qual vamos dar o salto seguido de :. O goto pode saltar para um rótulo que esteja mais à frente ou para trás no programa. Uma observação importante é que o rótulo e o goto devem estar dentro da mesma função.

61 Comando – goto exemplo


Carregar ppt "PROGRAMA ÃO C A linguagem C foi primeiramente criada por Dennis M. Ritchie e Ken Thompson no laboratório Bell em 1972, baseado na linguagem B que era uma."

Apresentações semelhantes


Anúncios Google