Linguagem de Programação Thiago Leite <thiago.leite@udf.edu.br> Francisco Barretto <francisco.barretto@udf.edu.br>
SCHILDT, H. C Completo e Total. 3ª Edição. São Paulo: Makron, 1997. Bibliografia
Ementa Introdução Estruturas de Controle e Repetição Funções Operações sobre Vetores Tipos de Dados Abstratos (TAD) Ponteiros Operações sobre Listas Lineares Manipulação de Arquivos
Avaliação Quatro avaliações individuais em sala (1,5 ponto cada) datas definidas em calendário em caso de alterações haverá aviso no Blackboard Prova Regimental Integralizada (5 pontos) Não há arredondamento de notas
Presença em Sala de Aula Limite de 20 faltas 4 faltas por dia de aula (aulas duplas) Presença do aluno será cobrada
Linguagem C uso de propósito geral linguagem estruturada e procedural padronizada pela ANSI e ISO criada em 1972 por Dennis Ritchie na Bell Labs para desenvolver o sistema operacional Unix
Após publicação do livro The C Programming Language ocorreu um grande número de variações na linguagem original Em 1983 foi criado um comitê técnico do American National Standards Institute (ANSI) com o objetivo: propor uma definição da linguagem C que fosse não ambígua e independente da arquitetura do computador necessidade de uma versão padrão era criado então o padrão C ANSI
Linguagem C foi inspirada na linguagem de programação B, que foi uma versão reduzida da linguagem BCPL permitiu o desenvolvimento de sistemas operacionais em uma linguagem diferente do que Assembly em 1983 a linguagem ficou conhecida como ANSI C
Exemplo de Código em Assembly x86 1..486p 2..model flat,stdcall 3. include win32.inc 4. extrn MessageBoxA:PROC 5. extrn ExitProcess:PROC 6..data 7. HelloWorld db "Hello, world!",0 8. msgtitle db "Hello world program", 0 9..code 11. push MB_ICONQUESTION + MB_APPLMODAL + MB_OK 12. push offset msgtitle 13. push offset HelloWorld 14. push 0 15. call MessageBoxA 16. push 0 17. call ExitProcess 18.ends 19.end Start 10.Start:
Exemplo de Código em Linguagem C /* Hello World program */ #include<stdio.h> main() { printf("hello World"); }
Símbolos apresentados no código /* */ comentários no código-fonte texto não interpretado pelo compilador #include<arquivo.h> inclusão de arquivo externo geralmente possui a definição de funções a serem utilizadas
Símbolos apresentados no código main () { } função inicial que será executada quando o programa for invocado printf( ) função para a impressão de dados na tela do usuário ; na finalização de toda instrução deverá haver um ponto e vírgula ( ; ) demarcação do término de uma instrução
Processo de execução de um código-fonte em Linguagem C Edição do código-fonte Compilação do código-fonte Execução do binário
Geração do arquivo binario Pré-processamento Compilação Link-edição
Pré-processamento concatena arquivos de código-fonte substitui comentários por espaços em branco interpreta as linhas iniciadas com um caracter de cardinal (#), efetuando substituição de macros, inclusão de arquivos
Compilação transformação do código-fonte em linguagem compreensível para o computador gera arquivo binário (compreensível ao computador) com extensão.obj
Link-edição juntar os arquivos referenciados (bibliotecas) em um arquivo único
Palavras reservadas em Linguagem C auto case const default double enum float goto int register short sizeof struct typedef unsigned volatile break char continue do else extern for if long return signed static switch union void while
Operadores aritméticos, +, *, /, %,, + + Operador de divisão (/) realiza divisão inteira quando aplicado sobre inteiros Operadores relacionais >, <, >=, <=, ==,!= Operadores lógicos &&,,!
Operadores de incremento/decremento x+=100 é equivalente a x=x+100 x =50 é equivalente a x=x 50 x*=30 é equivalente a x=x*30 x/=10 é equivalente a x=x/10
diminui parênteses!, ++, *, /, % +, <, <=, >, >= ==,!= && Prioridade dos Operadores Básicos Introdução
Principais tipos de dados em C int (2 bytes) valores numéricos inteiros float (4 bytes) valores numéricos com ponto flutuante double (8 bytes) valores numéricos com ponto flutuante com o dobro da capacidade
Principais tipos de dados em C (continuação) char (1 byte) armazenar um caracter qualquer void (não ocupa espaço) tipo especial para indicar o nulo utilizado para indicar um possível tipo desconhecido ou inexistente
Exemplo de conversão de Português Estruturado para Linguagem C programa SOMA_NUMEROS var inicio fim a, b, soma: inteiro a <- 5 b <- 3 soma <- a + b escreva O valor da soma dos numeros e:, soma
Exemplo de conversão de Português Estruturado para Linguagem C #include <stdio.h> main () { } int a, b, soma; a = 5; b = 3; soma = a + b; printf( O valor da soma dos números é: %d, soma);
Exercício Faça um algoritmo que primeiro pergunte ao usuário os seguintes dados: altura, peso, idade e se é fumante ou não (S ou N). Tais dados devem ser armazenados em variáveis correspondentes. Em seguida o programa deve escrever os dados na tela
Exercício (BARRETTO, 2014 - adaptado) O sistema de avaliação de determinada disciplina é composto por três provas. A primeira prova tem peso 2, a segunda tem peso 3 e a terceira tem peso 5. Considerando que a média para aprovação é 6.0, faça um código-fonte para calcular a média final de um aluno desta disciplina.
Exercício (BARRETTO, 2014 - adaptado) Na matemática, a Sucessão de Fibonacci (também Sequência de Fibonacci), é uma sequência de números inteiros, começando normalmente por 0 e 1, na qual, cada termo subsequente (numero de Fibonacci) corresponde a soma dos dois anteriores. Os números de Fibonacci são, portanto, os números que compõem a seguinte sequência: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, (podendo ser omitido o zero inicial) Crie um programa em C que crie os primeiros 7 valores dos números da série de Fibonacci, considerando que apenas os dois primeiros são fornecidos como valores constantes.