IFTO LÓGICA DE PROGRAMAÇÃO AULA 01 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://manoelcampos.com mcampos at ifto.edu.br Versão 05/12/12 Slide 1 Objetivos da Disciplina ● Elaborar algoritmos e programas para solucionar problemas computacionais Versão 05/12/12 Slide 2 Algoritmo ● ● ● De forma geral, é um conjunto de regras para solução de um problema. (DE SOUZA, 2005) Sequência ordenada e finita de etapas, cuja execução passo a passo resolve um determinado problema. (VILARIM, 2004) Uma receita de bolo é um exemplo de algoritmo, apesar de nem sempre incluir instruções detalhadas e precisas Versão 05/12/12 Slide 3 Algoritmo ● É uma sequência finita e ordenada de passos (regras), com um esquema de processamento que permite a realização de uma tarefa (resolução de problemas, cálculos etc.). Trata-se de uma palavra latinizada, derivada do nome de Al Khowarizmi, matemático árabe do século 19. Ele surgiu da necessidade de fazer cálculos sem o auxílio de ábacos, dedos e outros recursos. Até então, a estrutura dos cálculos esteve associada às ferramentas que havia à mão: pedras sobre o chão, varetas de bambu, a calculadora de manivela, a régua de cálculo e, por fim, a calculadora. É resultado de técnicas de cálculo que levaram séculos para se desenvolver. Também é usado na computação. (Revista Nova Escola) Versão 05/12/12 Slide 4 Linguagens de Programação ● ● Utilizadas para a construção de programas de computador por meio de algoritmos. Existem diversas linguagens, cada uma com seus objetivos específicos, vantagens e desvantagens. Versão 05/12/12 Slide 5 Linguagens de Programação ● Ranking das principais linguagens: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html ● Características ● Alto Nível x Baixo Nível ● Compilada x Interpretada ● Fortemente Tipada x Fracamente Tipada ● Declarativa x Procedural ● Web x Desktop ● Case Sensitive e Case Insensitive Versão 05/12/12 Slide 6 Linguagem C ● ● ● Amplamente utilizada para a construção de diversos tipos de aplicações Base para diversas outras linguagens como C++, C#, Java, PHP e outras Utilizada na construção de softwares aplicativos, bancos de dados e sistemas operacionais Versão 05/12/12 Slide 7 Linguagem C ● Case Sensitive ● Fortemente Tipada ● Procedural ● Desenvolvimento de aplicações Desktop e Web (apesar de seu uso para Web não ser popular) Versão 05/12/12 Slide 8 Linguagem C ● Linguagem compilada Versão 05/12/12 http://informatica.hsw.uol.com.br/programacao-em-c2.htm Slide 9 Linguagem C ● ● Multiplataforma: Gera programas para diversos Sistemas Operacionais como Windows, Linux, FreeBSD e MacOS; e diferentes arquiteturas de Hardware Cada plataforma tem seu compilador Versão 05/12/12 Slide 10 Ferramentas ● Editor de Texto ● Terminal/Console de Comandos ● Compilador ● Depurador ou ● Integrated Development Environment - IDE Versão 05/12/12 Slide 11 Estrutura Básica de Algoritmo C #include <stdio.h> int main() { comando1; comando2; comandoN; Corpo do algoritmo } Versão 05/12/12 Slide 12 Saída de Dados Função printf: utilizada para exibir texto na saída padrão (normalmente o monitor do computador) #include <stdio.h> int main() { printf("Meu primeiro programa em C"); printf("Autor: Manoel Campos da Silva Filho"); } Versão 05/12/12 Slide 13 Compilar e Executar em Linux ● Compilar: gcc nome_arquivo_fonte.c -o nome_executavel ● Executar: ./nome_executavel Versão 05/12/12 Slide 14 Saída de Dados Realizando quebra de linha com printf: #include <stdio.h> int main() { printf("Meu primeiro programa em C\n"); printf("Autor: Manoel Campos da Silva Filho\n"); } Versão 05/12/12 Slide 15 Variáveis e Tipos ● ● ● Tem a mesma finalidade das variáveis utilizadas na matemática: armazenar/representar valores Em computação, são espaços na memória RAM para armazenamento de dados de um programa Cada variável possui um endereço na memória RAM e um tamanho (espaço) pré-definido Versão 05/12/12 Slide 16 Variáveis e Tipos ● ● As variáveis em C possuem um tipo pré-definido Tipos definem os valores permitidos para armazenamento em uma variável (é o domínio da variável, assim como definido na matemática) Versão 05/12/12 Slide 17 Tipos Básicos de C Tipo Tamanho em Bytes Faixa Mínima char 1 -127 a 127 int 4 -2.147.483.648 a 2.147.483.647 unsigned int 4 0 a 4.294.967.295 short int 2 -32.768 a 32.767 unsigned short int 2 0 a 65.535 long int 4 -2.147.483.648 a 2.147.483.647 unsigned long int 4 0 a 4.294.967.295 float 4 Seis dígitos de precisão double 8 Dez dígitos de precisão long double 10 Dez dígitos de precisão Versão 05/12/12 Adaptada de http://equipe.nce.ufrj.br/adriano/c/apostila/tipos.htm#tipos Slide 18 Declaração de Variáveis ● A linguagem C obriga a declaração explícita de cada variável da seguinte forma: tipo nome_da_variavel; ● Não são permitidos em nomes de variáveis: ● ● ● Espaços, acentos, caracteres especiais, operadores aritméticos, iniciar com números É permitido _ (underline) e não – (sinal de menos/hifen) Podem ser declaradas em qualquer parte dentro do corpo do algoritmo/função Versão 05/12/12 Slide 19 Entrada de Dados ● Função scanf: utilizada para capturar dados da entrada padrão (normalmente o teclado). Por meio dela o programa pode capturar informações digitadas pelo usuário e armazenar em variáveis. Versão 05/12/12 Slide 20 Exercícios ● Crie um programa para solicitar o nome, data de nascimento, altura, peso, endereço, sexo e depois imprimir estes dados na tela Versão 05/12/12 Slide 21 Referências ● ● DE SOUZA, Marco Antonio Furlan; et al. Algoritmos e Lógica de Programação. São Paulo: Thomson, 2005. VILARIM, Gilvan. Algoritmos: Programação Para Iniciantes. Rio de Janeiro: Ciência Moderna, 2004. Versão 05/12/12 Slide 22