PROGRAMANDO A PORTA SERIAL USANDO API DO WINDOWS NA LINGUAGEM C.

Tamanho: px
Começar a partir da página:

Download "PROGRAMANDO A PORTA SERIAL USANDO API DO WINDOWS NA LINGUAGEM C."

Transcrição

1 PROGRAMANDO A PORTA SERIAL USANDO API DO WINDOWS NA LINGUAGEM C. Para elaborar um programa em linguagem C que realize a comunicação com a porta serial, podemos utilizar algumas funções/comandos da API (Application Programming Interface) do próprio Windows. Usar a API torna a programação mais fácil e evita que o programa desenvolvido possa prejudicar outros que estiverem em execução simultaneamente no ambiente Windows. Além disso, o programador não precisa conhecer detalhes específicos do hardware pois os programas de aplicação limitam-se apenas a pedir ao sistema operacional que execute determinadas tarefas. O controle do hardware é feito através de pequenos programas especiais denominados drivers. Para cada um dos periféricos do computador, tem de existir um driver apropriado. O uso de drivers permite trocar e atualizar periféricos facilmente, desde que também se troque o respectivo driver fornecido pelo fabricante. Os programas de aplicação se comunicam com o sistema operacional através da Application Programming Interface (API). Tal como o nome sugere, trata-se de uma interface de software que permite a comunicação nos dois sentidos. Normalmente, os compiladores utilizados pelo programadores possuem bibliotecas que tomam conta das chamadas à API. No caso do Turbo C++ 4.5, a biblioteca windows.h possui funções, tipos de dados, e estruturas de dados definidas para tomar conta dessas chamadas. A descrição detalhada da API está normalmente incluída no kit de desenvolvimento do sistema operacional (SDK) e, muitas vezes, pode ser baixada gratuitamente da Internet. Os programas de aplicação só se comunicam com o sistema operacional. Portanto, o programador não necessita saber como o sistema operacional realiza internamente o trabalho que lhe foi solicitado pelo programa de aplicação, mas tem de conhecer em detalhes a forma de fazer os pedidos. A API passa os pedidos para o núcleo do sistema operacional (kernel), que toma as medidas necessárias para atender os pedidos. Quando um programa de aplicação pede para um determinado componente do hardware ser utilizado, o kernel serve-se do driver do componente. É o driver que se comunica diretamente com o hardware. Desse modo, o programador também não necessita conhecer em profundidade o hardware. A comunicação entre o driver e o kernel não é feita através da API, mas sim da System Programming Interface (SPI) que é um outro modo de comunicação. Algumas funções da API para controlar a Porta Serial no Turbo C estão descritas na tabela abaixo: Nome OpenComm CloseComm ReadComm WriteComm BuildCommDCB SetCommState GetCommState GetCommError Uso Abrir uma porta de comunicação seqüencial (ou paralela). Fechar uma porta de comunicação especificada e liberar toda a memória alocada para suas filas de transmissão e recepção, após enviar todos os caracteres remanescentes na fila de transmissão. Ler um número especificado de bytes de uma porta de comunicação. Escrever caracteres numa porta de comunicação. Traduzir um texto de definição de parâmetros de uma porta de comunicação para o formato apropriado para preenchimento de uma estrutura (variável) do tipo bloco de controle de dispositivo. Aplicar parâmetros de configuração a uma porta de comunicação. (Configurar a porta de comunicação) Obter os valores dos parâmetros de configuração de uma porta de comunicação Recuperar o valor do último código de erro ocorrido e o estado de uma porta especificada, além dos números de dados presentes nas filas de entrada e saída. UMC Universidade de Mogi das Cruzes - Professor Rodrigo 1

2 Usar chamadas à API do Windows em programas de aplicação exige que todos os valores dos parâmetros de configuração sejam armazenados em uma única variável. Isso pode ser obtido através de variáveis do tipo struct. Cada uma das variáveis que compõem a variável struct é chamada de campo do registro, ou simplesmente campo. Como a API tem o papel de facilitar o trabalho do programador, você não precisa declarar a variável do tipo struct pois a biblioteca windows.h já tem pronta a declaração do tipo de dado DCB. Uma variável do tipo de dado DCB é um registro com campos para diversos parâmetros de configuração de portas de comunicação. Segue abaixo a descrição de alguns dos campos do registro que armazenará os valores dos parâmetros de configuração da porta de comunicação serial e como fazer o acesso a esses campos. Campo id Descrição Especifica o dispositivo de comunicação. Este valor é ajustado pelo driver do dispositivo. Se o bit mais significativo for 1, a estrutura especifica um dispositivo de comunicação paralela BaudRate Especifica a taxa de baud na qual operarão os dispositivos de comunicação. Se o valor do byte mais significativo for igual a 0xFF, o byte menos significativo especifica o índice da taxa de baud, que pode ser um dos seguintes valores: CBR_110 CBR_6000 CBR_19200 CBR_4400 CBR_28000 CBR_9200 CBR_9600 CBR_8400 CBR_14400 CBR_ CBR_38400 CBR_56000 CBR_ Se o byte mais significativo for diferente de 0xFF, este parâmetro especifica a taxa de baud real. ByteSize Parity StopBits Especifica o número de bits nos caracteres transmitidos e recebidos. Este campo pode conter qualquer um dos números inteiros de 4 até 8. Especifica o esquema de paridade usado. Este campo pode conter qualquer um dos seguintes valores: Valor EVENPARITY MARKPARITY NOPARITY ODDPARITY Significado Par Marca Sem paridade Ímpar Especifica a duração do bit de parada a ser usado. Este campo pode ter um dos seguintes valores: Valor Significado 0, ONESTOPBIT Duração igual à de 1 bit 1, ONE5STOPBITS Duração de 1,5 bit 2, TWOSTOPBITS Duração de 2 bits Para fazer acesso a um desses campos basta especificar o nome da variável seguido de um ponto final seguido do nome do campo. Por exemplo, para armazenar o valor 1200 no campo BaudRate de uma variável do tipo DCB chamada confporta digite o comando: confporta.baudrate = Para exibir o valor armazenado no campo StopBits pode ser usado o comando: printf( StopBits = %d\n,confporta.stopbits). UMC Universidade de Mogi das Cruzes - Professor Rodrigo 2

3 O programa exemplo a seguir mostra como abrir a porta de comunicação COM1, obter os valores dos seus parâmetros de configuração, e exibir alguns dos valores obtidos. Observe o uso das chamadas às funções da API, e o acesso aos campos da variável registro confporta. if (GetCommState(idporta,&confporta) < 0) printf( Erro ao obter os valores dos parâmetros de configuração\n ); printf( Alguns valores de parâmetros de configuração:\n ); printf( Taxa de transferência = %d bps\n,confporta.baudrate); printf( Tamanho do dado = %d bits\n,confporta.bytesize); printf( Paridade= ); if (confporta.parity == NOPARITY) printf( Nenhum\n ); if (confporta.parity == ODDPARITY) printf( Impar\n ); if (confporta.parity == EVENPARITY) printf( Par\n ); printf( StopBits = %d\n,confporta.stopbits); return 0; /* fim do programa */ A função OpenComm tenta alocar uma porta de comunicação para o seu programa. Obviamente, ela precisa saber qual das portas é a desejada. Isso justifica a especificação COM1. Os outros dois parâmetros especificam os tamanhos (em bytes) das filas de entrada e saída, respectivamente, para a porta. Essas filas são áreas de memória que a porta utilizará para se comunicar com seu programa. Como os dados podem chegar à porta a qualquer momento, pode acontecer de um dado chegar quando seu programa não estiver no ponto de tratá-lo. Para evitar que o dado fique parado bloqueando a porta, este é imediatamente transferido para uma área da memória do computador conhecida como fila de entrada. Quando seu programa estiver pronto para tratar o dado, ele o procurará na fila de entrada. Também pode ocorrer do seu programa desejar transmitir um dado quando a porta estiver ocupada. Neste caso, ao invés de bloquear o programa até que a porta esteja disponível, o dado é colocado na fila de saída, de onde será retirado pela porta para ser transmitido no momento oportuno. Dados podem ser perdidos caso os tamanhos especificados para essas filas sejam pequenos para as necessidades do programa. Caso a porta esteja disponível para uso do seu programa, a função OpenComm retornará um número inteiro, fornecido pelo driver do dispositivo, e que será usado como identificador da porta. Caso a porta não esteja disponível (não instalada ou já alocada para outro programa), a função retornará um valor menor do que zero. Isso justifica a necessidade do teste (comando if) após o uso da função OpenComm. A função GetCommState obtém os valores dos parâmetros de configuração da porta identificada pelo valor da variável idporta e deve armazená-los em alguma variável registro do tipo DCB. Daí a necessidade de especificar o identificador da porta e a variável (endereço da variável) que armazenará os valores obtidos. A função CloseComm fecha a porta de comunicação identificada pelo valor da variável idporta. UMC Universidade de Mogi das Cruzes - Professor Rodrigo 3

4 O próximo programa mostra como abrir uma porta de comunicação série e ajustar seus parâmetros de configuração usando as funções BuildCommDCB e SetCommState. if (BuildCommDCB( COM1:1200,n,7,1,&confporta) < 0) printf( Erro ao codificar os valores dos parâmetros de configuração\n ); if (SetCommState(&confporta) < 0) printf( Erro ao ajustar os parâmetros de configuração\n ); return 3; /* o programa só executa as linhas abaixo se a nova configuração estiver estabelecida */ if (GetCommState(idporta,&confporta) < 0) printf( Erro ao obter os valores dos parâmetros de configuração\n ); return 4; printf( Alguns dos novos valores dos parâmetros de configuração:\n ); printf( Taxa de transferência = %d bps\n,confporta.baudrate); printf( Tamanho do dado = %d bits\n,confporta.bytesize); printf( Paridade= ); if (confporta.parity == NOPARITY) printf( Nenhum\n ); if (confporta.parity == ODDPARITY) printf( Impar\n ); if (confporta.parity == EVENPARITY) printf( Par\n ); printf( StopBits = %d\n,confporta.stopbits); return 0; /* fim do programa */ A função BuildCommDCB apenas interpreta um texto contendo valores de parâmetros de configuração e armazena esses valores nos campos apropriados de uma variável registro do tipo DCB. O texto deve especificar o nome da porta (COM1) seguido de um sinal dois-pontos, seguido da taxa de transferência desejada (1200), do tipo de verificação de paridade (n = nenhum), do tamanho do dado (7 bits por dado), e da duração do bit de parada (1). Deve-se usar a função SetCommState, em seguida à BuildCommDCB, para aplicar os novos valores dos parâmetros de configuração armazenados na variável registro do tipo DCB à porta. O próximo programa ilustra uma técnica, conhecida como polling, para ler dados transmitidos por um dispositivo ligado à porta de comunicação serial. Esta técnica consiste em ficar consultando a porta sobre a chegada de um dado. Quando a consulta indicar que algum dado está disponível então a leitura é feita. A determinação da presença de dados na porta é feita através de uma chamada à função GetCommError, a qual recupera o valor do último código de erro ocorrido e o estado da porta, além das quantidades de dados presentes nas filas de entrada e de saída. Os valores retornados pela função GetCommError devem ser armazenados em uma única variável. Como já explicado anteriormente, esta UMC Universidade de Mogi das Cruzes - Professor Rodrigo 4

5 variável deve ser do tipo registro (struct). A biblioteca windows.h já tem declarado um tipo de dado registro para armazenar essas informações; trata-se do tipo COMSTAT. Abaixo estão relacionados os campos desse registro. Campo Flags CbInQue CbOutQue Descrição Contém os códigos dos erros ocorridos e o estado da porta Contém o número de dados presentes na fila de entrada. Contém o número de dados presentes na fila de saída Sabendo que existem dados disponíveis na fila de entrada de uma porta de comunicação seqüencial, a leitura desses dados pode ser feita usando-se a função ReadComm. Antes de testar o programa que lê dados da porta, lembre-se que é preciso ligar algum dispositivo que envie dados pela porta seqüencial. Supõe-se, aqui, que você tenha um mouse adicional (2º mouse) ligado à porta COM1. Este será o dispositivo que enviará dados para o seu programa. Para evitar que o Windows instale um segundo mouse no seu sistema, só conecte o mouse adicional à porta COM1 após a carga completa do sistema operacional. O mouse serial padrão monitora dois botões e dois sensores de movimento. Sempre que um ou mais desses componentes monitorados sofre uma alteração, o mouse envia para a porta seqüencial três bytes de dados, nos quais são informadas as situações dos botões e informados os deslocamentos horizontal e vertical do dispositivo. O mouse transmite a uma taxa de 1200 bps, usando 7 bits para cada dado, sem verificação de paridade, e com bit de parada de mesma duração dos demais bits (1 stopbit). COMSTAT estadoporta; /* registro com informações de estado da porta */ char dado[3]; /* local onde ficarão os dados lidos da porta */ if (BuildCommDCB( COM1:1200,n,7,1,&confporta) < 0) printf( Erro ao codificar os valores dos parâmetros de configuração\n ); if (SetCommState(&confporta) < 0) printf( Erro ao ajustar os parâmetros de configuração\n ); return 3; /* a repetição abaixo caracteriza a técnica de polling */ do GetCommError(idporta,&estadoporta); while (estadoporta.cbinque < 3); /* espera até que existam pelo menos 3 dados na fila */ printf( Primeiros 3 dados lidos:\n ); ReadComm(idporta, dado, 3); printf( 1: %x\n2: %x\n3: %x\n,dado[0],dado[1],dado[2]); return 0; UMC Universidade de Mogi das Cruzes - Professor Rodrigo 5

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

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes [email protected] 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes

Leia mais

Sistemas Operacionais. Entrada/Saída

Sistemas Operacionais. Entrada/Saída Sistemas Operacionais Entrada/Saída Atualizado em 28/02/2014 Como ocorre a comunicação de E/S Aplicação Operações de E/S Chamadas de Sistema S.O. Subsistema de E/S Núcleo (Kernel) Drivers HARDWARE Controladoras

Leia mais

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha LINGUAGEM DE PROGRAMAÇÃO C AULA 2 Professor: Rodrigo Rocha TIPOS, VARIÁVEIS E CONSTANTES Tipos de Dados Variáveis Constantes Introdução a entrada e saída Printf Scanf Ferramentas: Dev-C++ Code::Blocks

Leia mais

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída Nome: Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída 1. A gerência de dispositivos de entrada e saída é uma das principais e mais complexas funções de um sistema

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Entrada e Saída Slide 1 Entrada e Saída Dispositivos Externos E/S Programada Organização e Arquitetura de Computadores I Sumário E/S Dirigida por Interrupção

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Introdução Acesso ao Subsistema de E/S Subsistema de E/S Device Drivers Controladores Dispositivos de E/S Discos Magnéticos Desempenho,

Leia mais

Manual do Usuário Brother Meter Read Tool

Manual do Usuário Brother Meter Read Tool Manual do Usuário Brother Meter Read Tool BRA-POR Versão 0 Direitos autorais Copyright 2017 Brother Industries, Ltd. Todos os direitos reservados. As informações incluídas neste documento estão sujeitas

Leia mais

Manual do usuário - Kit 4EA2SA v2.0. Kit 4EA2SA v2.0 Manual do usuário. Copyright VW Soluções

Manual do usuário - Kit 4EA2SA v2.0. Kit 4EA2SA v2.0 Manual do usuário.   Copyright VW Soluções Kit 4EA2SA v2.0 Manual do usuário 1 Apresentação O Kit 4EA2SA v2.0 foi desenvolvido pela VW Soluções utilizando-se como base o circuito integrado MCP3424 da Microchip, que possui 4 (quatro) entradas analógicas

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

Programação I A Linguagem C. Prof. Carlos Alberto

Programação I A Linguagem C. Prof. Carlos Alberto Programação I A Linguagem C Prof. Carlos Alberto [email protected] [email protected] 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Notas da Aula 14 - Fundamentos de Sistemas Operacionais Notas da Aula 14 - Fundamentos de Sistemas Operacionais 1. Dispositivos de E/S Uma operação de entrada e saída é aquela que envolve a leitura ou escrita de dados a partir de dispositivos que estão fora

Leia mais

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

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc

Leia mais

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

Leia mais

Sistemas Operacionais. Sistema de entrada e Saída

Sistemas Operacionais. Sistema de entrada e Saída Sistemas Operacionais Sistema de entrada e Saída Sistema de Entrada e Saída I/O É uma das principais tarefas de um sistema computacional Como máquina abstrata o S.O. deve oferecer uma visão padronizada

Leia mais

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes

Leia mais

Aula 12: Memória: Barramentos e Registradores

Aula 12: Memória: Barramentos e Registradores Aula 12: Memória: Barramentos e Registradores Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Barramentos e Registradores FAC 1 / 34

Leia mais

ecos - Gestores de dispositivos

ecos - Gestores de dispositivos ecos - Gestores de dispositivos gestores de dispositivos ( device drivers ) interface aplicacional (API) gestor de linha série raw serial driver tty driver ecos - device driver - user API cyg_io_lookup

Leia mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Prof. Victor Halla

Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Prof. Victor Halla Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS Prof. Victor Halla Conteúdo Sistema de Arquivos Introdução Sistemas de Diretórios Gerenciamento de Entrada e Saída; Problemas de alocação em memória Perda

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Gerência de Dispositivos Dispositivos de E/S Device Drivers Controladores Subsistema de E/S 2 Gerência de Dispositivos A gerência de

Leia mais

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Estrutura e Funcionamento dos Computadores (Conceitos Básicos) Estrutura e Funcionamento dos Computadores (Conceitos Básicos) Sistema Computacional Peopleware (usuário) Software (programas) Hardware (máquina) Hardware Corresponde à parte material, aos componentes

Leia mais

Métodos Computacionais. Vetores e Matrizes Dinâmicas

Métodos Computacionais. Vetores e Matrizes Dinâmicas Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1 Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores Aula - Tópico 1 1 Problema 1 Considere o seguinte problema: Determinar o valor de y = seno(1,5). 2 Definições Para

Leia mais

Introdução à Programação

Introdução à Programação Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos [email protected] Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

Leia mais

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior - Capítulo 5 Afirmações Entrada/Saída Introdução Processos se comunicam com o mundo externo através de dispositivos de E/S. Processos não querem ou não precisam entender como funciona o hardware. Função

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Capítulo 6: Arquivos

Capítulo 6: Arquivos Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de

Leia mais

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

Redes Industriais. Carlos Roberto da Silva Filho, M. Eng.

Redes Industriais. Carlos Roberto da Silva Filho, M. Eng. Redes Industriais Carlos Roberto da Silva Filho, M. Eng. Criado na década de 1970 pela Modicon. É um dos mais antigos protocolos utilizados em redes de CLPs para aquisição de sinais de instrumentos e comandar

Leia mais

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro

Leia mais

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende Sub Rotinas Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Uma dos métodos mais comuns e amplamente utilizados em programação de computadores é o Top-Down. Nesta abordagem um problema é

Leia mais

Estrutura de Dados. Aula 07 Alocação Dinâmica

Estrutura de Dados. Aula 07 Alocação Dinâmica Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4 Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para

Leia mais

Aula 09. Módulos de Entrada e Saída

Aula 09. Módulos de Entrada e Saída Aula 09 Módulos de Entrada e Saída Módulo de E/S Se não tivermos como colocar dados nos computadores de que eles servirão? Os barramentos fornecem um meio de mover dados de dentro para fora do sistema.

Leia mais

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

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes [email protected] Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores

Leia mais

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída Periféricos possuem características diferentes Geram diferentes quantidades de dados Em velocidades diferentes Em formatos diferentes Periféricos são mais lentos que UCP e Memória Necessita-se de módulos

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 2 Existem 4 esquemas diferentes de E/S possíveis, cada um se aplicando em uma determinada situação. E/S Programada. E/S Acionada

Leia mais

Entrada e Saída e Dispositivos

Entrada e Saída e Dispositivos Entrada e Saída e Dispositivos Uma das funções do Sistema Operacional é: - Gerência de dispositivos de E/S. Operações: - Tratamento de interrupções - Tratamento erros - Interfaceamento entre os dispositivos

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Problemas com Entrada e Saída

Problemas com Entrada e Saída Problemas com Entrada e Saída Periféricos possuem características diferentes Geram diferentes quantidades de dados Em velocidades diferentes Em formatos diferentes Periféricos são mais lentos que UCP e

Leia mais

4. Estruturas Fundamentais de Programação em C

4. Estruturas Fundamentais de Programação em C 4. Estruturas Fundamentais de Programação em C 4.1. Imprimindo Mensagens e Valores no Monitor de Vídeo A biblioteca de entrada e saída (stdio.h) possui a função printf que imprime mensagens e valores diretamente

Leia mais

Introdução a Programação de Jogos

Introdução a Programação de Jogos Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição

Leia mais

4 Arquitetura Adotada

4 Arquitetura Adotada 4 Arquitetura Adotada Neste trabalho foi desenvolvido um sistema para a inspeção de dutos de óleo, gás e outros fluidos. Este sistema está sendo usado em inspeções que utilizam como ferramenta de inspeção

Leia mais

Comunicação. Rotinas da dll

Comunicação. Rotinas da dll Comunicação Para comunicação com computador, em ambiente Windows, é utilizada a DLL Rmt6000.dll. Rotinas da dll A DLL Rmt6000.dll tem quatro funções que permitem estabelecer a comunicação entre o SP6000

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza [email protected] http://docente.ifrn.edu.br/givanaldorocha Conceitos Lógica de Programação técnica de encadear pensamentos

Leia mais

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos: CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta

Leia mais

BARRAMENTO DO SISTEMA. Adão de Melo Neto

BARRAMENTO DO SISTEMA. Adão de Melo Neto BARRAMENTO DO SISTEMA Adão de Melo Neto 1 BARRAMENTOS DO SISTEMA O mecanismo mais comum de interconexão dos componentes de um computador (processador, memória principal e módulos de E/S) usa um barramento

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída Departamento de Ciência da Computação - UFF Dispositivos de Entrada e Saída Profa. Débora Christina Muchaluat Saade [email protected] Problemas com Entrada e Saída ü Periféricos possuem características

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 23 Entrada e Saída (I/O) Rodrigo Hausen 03 de novembro de 2011 http://cuco.pro.br/ach2034 1/62 Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.3. Estruturas

Leia mais

Introdução à Linguagem C Variáveis e Expressões

Introdução à Linguagem C Variáveis e Expressões INF1005: Programação 1 Introdução à Linguagem C Variáveis e Expressões 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Programando em C Funções Variáveis Define Operadores e Expressões Entrada e Saída

Leia mais

Projeto de Algoritmos

Projeto de Algoritmos Projeto de Algoritmos Introdução aos Sistemas Computacionais Prof. Ernani Viriato de Melo / Reginaldo Costa http://www.ernani.eti.br http://reginaldofazu.blogspot.com 2º Semestre - 2008 Conceitos Básicos

Leia mais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO Cristina Boeres Sistema de Computação! Conjunto de componentes integrados com o objetivo de manipular dados e gerar informações úteis.

Leia mais

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Explicitar aos alunos os modelos de entrada e saída em um computador e quais barramentos se aplicam a cada componente: memória,

Leia mais

Vetores. e o programa deverá ler os valores separadamente:

Vetores. e o programa deverá ler os valores separadamente: Vetores Vetor é um tipo de dado usado para representar uma certa quantidade de variáveis de valores homogêneos (do mesmo tipo). Imagine o seguinte problema: calcular a média das notas da prova de 5 alunos.

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2) Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Manual do InCD Reader

Manual do InCD Reader Manual do InCD Reader Nero AG Informações sobre direitos autorais e marcas registradas O manual e todo o seu conteúdo é protegido por leis de direitos autorais e são de propriedade da Nero AG. Todos os

Leia mais

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

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito

Leia mais

Introdução aos Algoritmos

Introdução aos Algoritmos Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa [email protected] Universidade Federal Rural do Semiárido Bacharelado

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca [email protected] Aula 2

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Métodos Computacionais

Métodos Computacionais Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento

Leia mais

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK)

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK) AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK) Ø LP Java. Estrutura de um programa em Java. Ø Conjunto de caracteres utilizado. Ø Identificadores. Ø Variáveis e constantes. Ø Tipos

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática

Leia mais

ORGANIZAÇÃO DE COMPUTADORES

ORGANIZAÇÃO DE COMPUTADORES ORGANIZAÇÃO DE COMPUTADORES CAMPUS SANTO ANDRÉ CELSO CANDIDO SEMESTRE 2014-1 1 CONCEITOS ASSUNTOS DESTA AULA: Funcionalidades de um computador; Hardware e Software; Componentes de um computador: o CPU

Leia mais