Programação Imperativa. Lição n.º 1 Preliminares

Documentos relacionados
Programação Imperativa. Lição n.º 1 Preliminares

MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação

Informática I. Aula 19. Aula 19-31/10/2007 1

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 5

Programação imperativa. 3. Mais funções

Introdução à Linguagem C. K&R: Capitulo 1. Introdução IAED, 2014/2015 2

Linguagem de Programação. Thiago Leite Francisco Barretto

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira

Material sobre Funções AEDS 1

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Programação: Vetores

Slides trabalhados durante a quinta aula

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

Fundamentos de Programação 1

INTRODUÇÃO À LINGUAGEM C. Prof. Msc. Luis Filipe Alves Pereira 2015

A linguagem C (visão histórica)

Faculdade de Computação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Introdução à Programação em C (II)

Introdução à Programação em C

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

INF1005: Programação 1. Condicionais. 08/03/10 (c) Rogério Rodrigues 1

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Conceitos Básicos da Linguagem C++ Prof. Leonardo Barreto Campos 1

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

Introdução e Conceitos

Capítulo 4: Condicionais

Sistemas Operacionais. Augusto L. P. Nunes

Informática I. Aula 14. Aula 14-10/10/2007 1

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

Introdução a Linguagem C

Introdução Computador Hardware Histórico e Evolução Linguagem de Programação Princípios Básicos

Argumentos da linha de comando Exemplos Recursividade de funções Exemplos

Programação de Computadores:

Linguagens de Programação. Marco A L Barbosa

Introdução à Programação em C (I)

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática

Programação Estruturada I

Linguagens de Programação Aula 3

ESTRUTURAS DE CONTROLE

Linguagens de Programação

Programação Estruturada em C++: Extensões ao C

Computação II Orientação a Objetos

Classificação das linguagens de programação

Estruturas de Repetição

Estrutura de Programas e Tipos de Dados Simples

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

Legibilidade do código fonte

3. Linguagem de Programação C

Estruturas de controle Parte 1

Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012

Resumo da matéria: - Sintaxe da definição duma função C: - Diagramas sintácticos do if e dos mecanismos de ciclos em C:

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Conceitos básicos de programação

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Linguagens de programação. Introdução ao C (continuação)

Introdução Linguagem C. UDESC - Prof. Juliano Maia 1

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012

Cláudio C. Rodrigues Faculdade da Computação - UFU. Faculdade da Computação - UFU 1

Introdução à Linguagem C

Algoritmos Computacionais

Linguagem C Princípios Básicos (parte 1)

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Programação Estruturada Prof. Rodrigo Hausen Condicionais e Laços

Características fundamentais de codificação de programas

Linguagens de Programação

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

Capítulo 7. Expressões e Sentenças de Atribuição

Programação em Sistemas Computacionais

Introdução à Programação em C (I)

Rotinas, Modos e Tipos de Passagem de Parâmetros

INTRODUÇÃO À LINGUAGEM C

Modulo 2 Leitura, Escrita e IF

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

Introdução a linguagem C. Introdução à Programação 06/07

Algoritmos e Programação

Linguagens de Programação I

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo

Subprogramas. (ou Sub-rotinas) em C: Procedimentos e Funções. 2015/1 Programação Básica de Computadores (INF 09325)

Estruturas de Controle

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Quarta Aula Prática - 17 de abril de 2013

ao paradigma imperativo

Linguagem C (repetição)

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Instituto Superior de Engenharia de Lisboa

INFORMÁTICA APLICADA AULA 01 LINGUAGEM DE PROGRAMAÇÃO C++

LP II Estrutura de Dados

Curso de C. Estruturas Condicionais

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná

TÉCNICO DE INFORMÁTICA - SISTEMAS

Algoritmos Introdução. Thiago Leite e Francisco Barretto

Transcrição:

Programação Imperativa Lição n.º 1 Preliminares

Preliminares Apresentação. A programação na LEI. O que é um computador? O que é um programa? Linguagens de programação. A linguagem de programação C. Bibliografia. 9/22/16 Programação Imperativa 2

Apresentação Aulas teóricas às segundas-feiras, das 8:30 às 10:00, e às quintas-feiras, das 9:00 às 10:00, no anfiteatro 1.8.1, no edifício 8. Aulas práticas para várias turmas. Professor das teóricas: Pedro Guerreiro. Professores das práticas: Amine Berqia e Pedro Guerreiro. Avaliação por frequência e exame final. Página na tutoria: https://goo.gl/uewbpf. 9/22/16 Programação Imperativa 3

A programação na LEI Programação Imperativa. Laboratório de Programação. Programação Orientada por Objetos. Algoritmos e Estruturas de Dados. Bases de Dados. Computação Gráfica. Desenvolvimento de Aplicações para a Web. Compiladores. Inteligência Artificial.... 9/22/16 Programação Imperativa 4

O que é um computador? ENIAC: o primeiro computador eletrónico de uso geral. ENIAC (1946) UNIVAC I: o primeiro computador comercial americano. UNIVAC I (1951) 9/22/16 Programação Imperativa 5

O que é um computador? (2) PDP 11/70 (1975) IBM 360 (1965) DEC VAX-11/780 (1978) 9/22/16 DG Eclipse MV/8000 (1980) Programação Imperativa 6

O que é um computador? (3) IBM PC 5150 (12 de Agosto de 1981) Apple Macintosh (24 de Janeiro de 1984) 9/22/16 Programação Imperativa 7

O que é um computador? (4) Computador torre Computador laptop 9/22/16 Programação Imperativa 8

O que é um computador? (5) Macbook Air Microsoft Surface Pro 3 9/22/16 Programação Imperativa 9

E ainda... Fonte: IEEE Standard Glossary of Computer Hardware Terminology (1994). I'm sorry, Dave. I'm afraid I can't do that.. HAL 9000 9/22/16 Programação Imperativa 10

Definição de computador A device that consists of one or more associated processing units and peripheral units, that is controlled by internally stored programs, and that can perform substantial computations, including numerous arithmetic operations, or logic operations, without human intervention during a run. Fonte: IEEE Standard Glossary of Computer Hardware Terminology (1994). 9/22/16 Programação Imperativa 11

O que é um programa? Um programa é uma sequência de instruções que um computador executará automaticamente, para levar a cabo uma determinada tarefa. As instruções são executadas sequencialmente, primeiro a primeira instrução do programa, depois a segunda, e assim por diante até ao fim do programa, exceto no caso das instruções de salto, as quais permitem saltar (condicionalmente ou não) para outra instrução, mais à frente ou mais atrás. 9/22/16 Programação Imperativa 12

Como são os programas? Os programas são texto, isto é, sequências de frases, formadas por palavras, formadas por carateres. Os programas são escritos por pessoas ou por outros programas. Cada programa é escrito numa linguagem de programação. Os compiladores são programas que traduzem um programa escrito numa linguagem para outra linguagem que o computador é capaz de processar mais eficientemente. 9/22/16 Programação Imperativa 13

Programação imperativa A programação imperativa é um estilo de programação que reflete a ideia fundamental de que as instruções constituem ordens que o computador deve cumprir: read, write, call, stop, wait, add, connect, perform, etc. À programação imperativa contrapõe-se a programação funcional, para a qual um programa é a descrição de uma função (no sentido da matemática); executar o programa é avaliar a função para argumentos dados, a fim de obter os correspondentes resultados. 9/22/16 Programação Imperativa 14

Linguagens de programação Os programas são escritos usando linguagens de programação. Cada linguagem de programação é um conjunto de regras definidas inequivocamente num documento de referência. Há regras sintáticas (que exprimem as maneiras válidas de escrever programas) e regras semânticas (que exprimem o significado operacional dos programas). Há ainda regras de estilo, peculiares de cada organização. 9/22/16 Programação Imperativa 15

Principais linguagens 9/22/16 Programação Imperativa 16

A linguagem de programação C Em Programação Imperativa programaremos em C. A linguagem C foi inventada por Dennis Ritchie, nos Laboratórios Bell, em 1972. A linguagem C provém da linguagem B, a qual provinha da linguagem BCPL, a qual provinha da linguagem CPL, a qual provinha do Algol 60. A linguagem C influenciou diretamente as linguagens C++, Java, Objective C, C# e, mais ou menos diretamente, muitas outras. 9/22/16 Programação Imperativa 17

Evolução do C 1972: invenção do C. 1989: normalização ANSI C, ou C89. 1990: normalização ISO C, ou C90, igual à anterior. 1999: normalização ISO, C99. 2011: normalização ISO, C11. 9/22/16 Programação Imperativa 18

Bibliografia 9/22/16 Programação Imperativa 19

Aspeto Como exemplo, um programa C para calcular a medida do ângulo definido por dois segmentos, determinados, cada um deles, pela origem e por um ponto dado. #include <stdio.h> #include <math.h> #define MY_PI 3.14159265358979323846 /* pi */ double magnitude(double x, double y) return sqrt(x * x + y * y); void test_magnitude() double x; double y; while (scanf("%lf%lf", &x, &y)!= EOF) double z = magnitude(x, y); printf("%f\n", z); double inner_product(double x1, double y1, double x2, double y2) return x1 * x2 + y1 * y2; void test_inner_product() double x1; double y1; double x2; double y2; while (scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2)!= EOF) double z = inner_product(x1, y1, x2, y2); printf("%f\n", z); double angle(double x1, double y1, double x2, double y2) return acos(inner_product(x1, y1, x2, y2) / (magnitude(x1, y1) * magnitude (x2, y2))); double degrees(double a) return a * 180 / MY_PI; void test_angle() double x1; double y1; double x2; double y2; while (scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2)!= EOF) double z = angle(x1, y1, x2, y2); printf("%.12f\n", z); double z2 = degrees(z); printf("%.2f\n", z2); int main(int argc, char **argv) char x = 'A'; if (argc > 1) x = *argv[1]; if (x == 'A') test_magnitude(); else if (x == 'B') test_inner_product(); else if (x == 'F') test_angle(); else printf("%c Invalid option.\n", x); return 0; 9/22/16 Programação Imperativa 20