Conceitos básicos de programação



Documentos relacionados
Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

1. Estrutura de Dados

Conceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Orientação a Objetos

Programação de Computadores I. Linguagem C Função

Sistemas Distribuídos Capítulo 4 - Aula 5

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Montadores e Compiladores

AULA 3 Alocação dinâmica de memória: Ponteiros

Algoritmos APRENDENDO A PROGRAMAR COM C#

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

Programação de Computadores - I. Profª Beatriz Profº Israel

Aula 3/4: Vetores/Matrizes e Ponteiros

Do alto-nível ao assembly

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Parte 05 - Técnicas de programação (mapas de Veitch-Karnaugh)

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Informação-Prova de Equivalência à disciplina de: Aplicações Informáticas B. 1. Introdução. Ensino Secundário. Ano letivo de 2011/12

Ficheiros binários 1. Ficheiros binários

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

INE 5323 Banco de Dados I

Programação em JAVA. Subtítulo

Fundamentos de Arquitetura e Organização de Computadores

COMPUTAÇÃO. O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD:

Reader e Writer para streams de caracteres (texto).

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

Arquiteturas para Sistemas Distribuídos I

O que é Microsoft Excel? Microsoft Excel. Inicialização do Excel. Ambiente de trabalho

Metodologias de Programação

PROGRAMAÇÃO ORIENTADA A OBJETO INTRODUÇÃO

SISTEMAS DIGITAIS MEMÓRIAS E CIRCUITOS DE LÓGICA PROGRAMÁVEL

Prova Modelo. Nome: Número:

Informática Aplicada

Universidade Federal da Paraíba Centro de Informática Departamento de Informática

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Linguagens de Programação:

Glossário Versão 1.0 Desenvolvimento do Sistema de Gestão de Documentos Doc Manager Histórico de Revisão

EMENTA. Curso de Projetos Microcontrolados utilizando Linguagem C.

Introdução a Banco de Dados. INTRODUÇÃO

Tipos de Banco de Dados - Apresentação

TUTORIAL MATLAB Victor Breder 2016

Módulo IV Programação Visual Basic. Programação

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Até o momento, vimos que a estrutura de um computador segue uma seqüência: ENTRADA => PROCESSAMENTO => SAÍDA

EXPLORANDO A RESOLUÇÃO DE PROBLEMAS COM O MAPLE

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos

Soluções de gestão de clientes e de impressão móvel

O AMBIENTE DELPHI. Programação de Computadores.

Introdução a Funções

LINGUAGEM JAVA - RESUMO

Introdução à Programação com Python

Organização e Arquitetura de Computadores I

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

Exercícios: Vetores e Matrizes

INTERFACE PARALELA. Área: Eletrônica Nível de conhecimento necessário: básico. Autor:

Projetando um Computador

PROGRAMAÇÃO DE COMPUTADORES I

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Introdução a Programação Aula 01

Os conceitos aprendidos são fundamentais, essenciais para escrever um programa macro. Mas o que é um programa macro?

3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C

BANCO DE DADOS. Professor: André Dutton

Formação WEB com PHP. Subtítulo

Java possui 4 tipos de dados. Estes tipos de dados são divididos em: boolean, character, integer e float.

Memórias Cache. Memória

Circuitos Aritméticos

7. Funções de Lógica Combinacional. 7. Funções de Lógica Combinacional 1. Somadores Básicos. Objetivos. Objetivos. Circuitos Digitais 03/11/2014

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Calculadora Virtual HP Prime

Documento de Requisitos do Sistema SISFOTO Sistema de gerenciamento de eventos fotográficos Versão 1.0

Introdução à Ciência da Informação

CAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS

Normas para a elaboração de um relatório. para a disciplina de projecto integrado. 3.º ano 2.º semestre. Abril de 2004

Júlio César Scheiffer Saleh

Sistemas Numéricos. Tiago Alves de Oliveira

Objectos Gráficos 1. APROG (Civil) Aula 4. Friday, November 2, 12

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

LÓGICA E ROBÓTICA PRIMEIRAS IMPRESSÕES

1 - VARIÁVEIS COMPOSTAS HETEROGÊNEAS (Registros)

Detecção de erros de comunicação de dados CRC

Arquitetura e Organização de Computadores

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta

Sistemas Digitais II. Interface com o mundo analógico. Prof. Marlon Henrique Teixeira Abril/2014

CÁLCULO DO MODELO NUMÉRICO (MDT)

Algoritmos e Programação II

Projetando um Computador Parte II Arquitetura do Processador BIP

Compiladores. Simão Melo de Sousa

Título : B1 INTRODUÇÃO. Conteúdo : INTRODUÇÃO

Transcrição:

Tipos de dados estruturados Tipos estruturados vectores matrizes Estruturas (registos) Vectores e matrizes são estruturas homogéneas. Uma estrutura homogénea é uma sequência linear de elementos de mesmo tipo, que são referenciados por um índice. Essas estruturas podem ter uma (vectores) ou mais dimensões (matrizes), cujos elementos podem ser de tipos caracter, inteiro, real ou uma estrutura.

Tipos de dados estruturados - Vectores Exemplo: variável para armazenar notas de 50 alunos Declaração: float [] notas = new float [50] Exemplos de utilização: - somar 2 valores a cada "nota" no vector notas; - somar 2 vectores; Matrizes (i.e. vectores de dimensão superior a 1): - Exemplos: int[][] aluno = new int[50][2]; aluno[3][0]=35354; aluno[3][1]=16; O 1º valor para um índice é 0

Tipos de dados estruturados - Vectores Exemplo: class ExemploVector {static void Main() {int [] notas = new int[10] {5,4,6,7,6,8,9,6,7,8} int i,soma=0; for (i=0; i<10; soma+=notas[i+ +]); System.Console.WriteLine ( Media = {0}, soma/10.0); for (i=9; i>=0; i ) System.Console.WriteLine( Nota {0}, notas[i]); } }

Tipos de dados estruturados Tipos estruturados vectores matrizes estruturas Na linguagem C#, uma estrutura heterogénea é referenciada como - struct Uma estrutura heterogénea de dados é um agregado de dados, que por sua vez podem ser simples ou também estruturados, de mesmo tipo ou de tipos diferentes. Frequentemente, nas linguagens de programação, esses agregados são chamados de registos.

Tipos de dados estruturados - Estruturas Exemplo: Notas de diferentes tipos - 4 trabalhos de casa reais; - 1 trabalho final inteiro; - 1 exame real; - Nº. de aluno inteiro. Podia ser representada numa única variável estruturada notas contendo cada um desses elementos.

Tipos de dados estruturados - Estruturas struct notas { int numal; float[] notastpc = new float[4]; int trabf; float exame; } Exemplos de utilização: notas.numal = 23802; notas.notastpc[3] = 0.7;

Tipos de dados estruturados - Estruturas Na linguagem C#, uma estrutura pode ser declarada conforme a seguinte forma geral: struct nome {tipo nomemembro;[tipo nomemembro]...};

Tipos de dados estruturados - Estruturas Conforme mencionado anteriormente, um dos componentes de uma estrutura pode ser uma outra estrutura. Exemplo: struct tdata { int dia, mês, ano; }; struct aluno { int num; string nome; tdata datanasc; };

Tipos de dados estruturados - Estruturas Vectores (ou matrizes) de estruturas: Exemplo Struct notas { int numal; float[] notastpc = new float[4]; int trabf; float exame; } notas []notasinf =new notas[50];

Tipos de dados estruturados - Estruturas Exemplos de utilização: notasinf[14].trabf = 5; notasinf[25].exame = 8; notasinf[29].notastpc[1] = 0.8;

Conceitos a saber: Vectores e Matrizes Estruturas

Funções e procedimentos Funções ou procedimentos em qualquer linguagem de programação correspondem a blocos de código que realizam uma dada tarefa que pode depender de valores chamados argumentos ou parametros. A diferença essencial entre funções e procedimentos é que as funções devem retornar sempre um valor. Em C# não existem procedimentos pois estes são simulados por funções que retornam void.

Passagem de argumentos para uma função Existem diversas formas para passagem dos argumentos pretendidos a uma função ou procedimento. São mecanismos que permitem transmitir dados a uma função, no momento da sua chamada, tornando genérico o uso dessa função.

Passagem de argumentos para uma função Na chamada de funções existem duas formas de passagem de argumentos: a passagem por valor- na chamada de uma função, o valor de dado contido no argumento ou parâmetro real é copiado para a variável parâmetro formal. e a passagem por referência - na chamada de uma função tanto o parametro real como o formal apontam para a mesma posição de memória.

Passagem de argumentos para uma função Em c# geral. Exemplo a passagem por valor é o caso mais static void Inc(int p) {p++} public static void Test() { int i=1; Inc(i); Console.WriteLine(i); }

Passagem de argumentos para uma função Em c# a passagem por referência é indicada na chamada da função com os símbolos ref ou out. out usa-se quando os parametros formais ainda estão indefinidos, isto é, quando ainda não lhes foi atribuido qualquer valor. Se já tiverem um valor definido usa-se ref (os vectores são sempre passados por referência) static void Inc(ref int p) {p++} public static void Test() { int i=1; Inc(ref i); Console.WriteLine(i); }

Funções Uma função pode conter uma chamada recursiva, ou seja, pode invocar-se a si própria. versão não recursiva: static int soma (int n) { int i; int soma =0; for (i=n; i>=0; i--) soma += i; return soma; } versão recursiva: static int soma (int n) { if(n>0) return n+soma(n-1); else return o; }

Funções Exemplo: soma (5) { } [ ] x = soma(5); [ ] 5+soma(4) 4+soma(3) 3+soma(2) 1+soma(0) 2+soma(1) 0

Funções A recursão pode não economizar espaço na memória do computador, pois uma pilha deve ser mantida na memória com os valores sendo processados, correspondentes a cada ambiente que é criado a cada chamada recursiva, A recursão também não é mais rápida. A vantagem de códigos recursivos é que eles são mais compactos do que os seus correspondentes não recursivos.

Conversão de Tipos A linguagem C# possui um operador para forçar a conversão de tipos de dados, que altera o tipo de um valor. Esse operador é o cast : () Exemplo:... { float a = 35.7, b = 87.4; int x; x = (int) (a+b); } A soma a + b é convertida para um valor int.

Conversão de Tipos Se uma expressão envolver valores de diferentes tipos, a Linguagem C# possui regras para a conversão automática de tipos, baseadas nos tipos dos operandos. O fundamento dessas regras é que sempre se promove uma conversão para um tipo de maior precisão, com o objetivo de que as expressões mantenham a sua precisão e não percam informação.

APONTADORES Um apontador ou ponteiro é uma variável que armazena o endereço de outra variável, ou seja, aponta para esse endereço de memória. Um apontador é uma representação simbólica de um endereço que evita que os programadores necessitem conhecer as posições de memória que vão usar. apontador

APONTADORES As 3 operações básicas para apontadores são: atribuição de endereço operador p/obter o conteúdo de um apontador operador p/obter o endereço de uma variável

APONTADORES Na linguagem C#, um apontador só é usado para manipulação explícita da memória em blocos de código identificados como inseguros (unsafe).

Conceitos a saber: Passagem de argumentos para uma função Funções Recursivas Conversão de tipos Apontadores

Engenharia de Software O objectivo da Engª de Software é estabelecer técnicas e métodos de trabalho que permitam aumentar a qualidade e a eficiência do software. A qualidade de um programa não depende só do algoritmo ou das estruturas de dados utilizados mas também da documentação que lhe dá suporte. Um bom programa, para além de eficiente, deverá ser fácil de entender e de alterar.

Um bom programa deverá: - ter o código escrito de forma organizada recorrendo a linhas em branco, identação em vários níveis e espaços em branco para aumentar a facilidade com que é lido. - ter as expressões numéricas ou lógicas escritas de forma clara podendo usar parêntises para facilitar o entendimento da expressão.

Um bom programa deverá: - ter comentários explicando o que se pretende fazer e dando indicações sobre os elementos criados. - ter identificadores para variáveis e funções que facilitem o entendimento do uso que lhes será dado. - estar estruturado em componentes de pequena dimensão e que realizem tarefas bem definidas.

Os sub-componentes de um programa devem ser capazes de realizar tarefas bem definidas escondendo dos outros componentes os detalhes internos de implementação em especial as estruturas de dados por eles utilizadas. A implementação de componentes com funções comuns a outros programas facilita a sua reutilização poupando tempo no desenvolvimento de software.

Orientação a Objectos Para que desenvolver um programa possa ser mais fácil apareceu o conceito de programação orientada a objectos. A orientação a objectos baseia-se na visão de que a realidade que nos rodeia é composta de objectos e que estes interagem entre si através de interfaces bem definidas sem que tenham de conhecer os detalhes de como os outros objectos são implementados.

Orientação a Objectos As linguagens de programação ditas procedimentais, como C, são geralmente orientadas para a implementação de funções e os seus programas são organizados através desse conceito. O C# é uma linguagem orientada a objectos e por isso as unidades que compõe um programa são classes (class) e as funções ficam definidas dentro das classes e são geralmente designadas como métodos.

Conceitos a saber: Engenharia de Software Qualidade de um programa Orientação a Objectos

Como sabemos todos os dados processados num programa devem estar armazenados em células da memória central. Quando o programa termina essas áreas são libertadas e perdem-se os dados lá armazenados. Quando pretendemos guardar dados é necessário recorrer a ficheiros como um mecanismo para armazenar com persistência a informação fornecida pelos programas ou necessária ao processamento.

Ficheiros Um ficheiro de dados é uma sequência de elementos armazenados em disco A utilização de ficheiros armazenados na memória de massa (ex.:disco) obriga a que os programas sejam capazes de trocar informações com o sistema de ficheiros implementado pelo sistema de exploração da máquina onde o programa executa. Esta é uma actividade com alguma complexidade e as Linguagens de Programação oferecem comandos para permitir essa ligação entre o programa e o sistema.

Ficheiros Um ficheiro em disco para ser utilizado tem antes que ser aberto, isto é, preparado para processamento. Após processado, um ficheiro tem que ser fechado. ABERTURA EN CERRAMEN TO P r o c e s s a m e n t o Operações L / E

Ficheiros Geralmente a abertura de um ficheiro associa o nome físico do ficheiro, reconhecido pelo sistema de exploração, a um nome lógico, através do qual o ficheiro será referenciado no programa. O elemento corrente em um ficheiro é aquele que está apontado, disponível para uma operação de leitura ou escrita.

Ficheiros As operações de leitura e escrita são sempre realizadas no elemento corrente. Uma operação de leitura ou escrita lê ou escreve e elemento apontado e passa para o próximo elemento.

Ficheiros O encerramento de um ficheiro encerra o ficheiro para as operações de leitura e escrita. Após o encerramento, não será possível realizar novas operações sobre o ficheiro Um ficheiro não deve ficar aberto sem uso.

Ficheiros Não existem comandos da linguagem C# que forneçam suporte directo para manipulação de ficheiros. C# vê um ficheiro como uma sequência de bytes. Para trabalhar com ficheiros é necessário usar o namespace System.IO que possui uma série de classes pré-definidas para abertura, operações de leitura e escrita e encerramento de ficheiros.

Ficheiros Como trabalhar com ficheiros é uma tarefa complexa e para muitas aplicações torna-se indispensável trabalhar com dados armazenados em ficheiros, apareceu o conceito de Bases de Dados, isto é, um grupo de ficheiros inter-relacionados, que são criados e manipulados através de um Sistema de Gestão de Bases de Dados. Um Sistema de Gestão de Bases de Dados (SGBD) é uma coleção de programas que incluem as principais funções para criação, actualização e consultas a dados.

Ficheiros Nas aulas teóricas iremos aprofundar os conceitos necessários ao entendimento e uso de Bases de Dados e exemplificar esses conceitos usando o SGBD Access que faz parte do Microsoft Office. Nas aulas práticas serão feitos exercícios para apresentar o uso de ficheiros em C# e de Bases de Dados no Access.

Conceitos a saber: Ficheiros Abertura e encerramento Bases de Dados Sistema de Gestão de Bases de Dados