Introdução à SDL2. por Bruno Bottino Ferreira Adriano Cruz
|
|
- Sara Faro Azenha
- 7 Há anos
- Visualizações:
Transcrição
1 Introdução à SDL2 por Bruno Bottino Ferreira Adriano Cruz
2 Agenda O que é? Por que? Instalando Conceitos Básicos Programando
3 O que é?
4 Lazyfoo site So you learned the basics of C++, but you're sick of making little text based programs. In order to use things like graphics, sound, keyboards, joysticks, etc you need an API (Application Programmer's Interface) that takes all those hardware features and turns it into something C++ can interact with. That's what SDL does. It takes the Windows/Linux/Mac/Android/iOS/etc tools and wraps them in a way that you can code something in SDL and compile it to whatever platform it supports. In order to use it, you need to install it.
5 Simple DirectMedia Layer é uma biblioteca de desenvolvimento multi-plataforma. Foi projetada para suportar acesso de baixo nível à audio, teclado, mouse, joystick e hardware gráfico via OpenGL e Direct3D. É usada por software de vídeo, emuladores e vários jogos populares incluindo da Valve e vários Humble Bundle.
6 Como foi desenvolvida? SDL oficialmente suporta Windows, Mac OS X, Linux, ios, and Android. Suporte para outras plataformas pode ser encontrada no código fonte. SDL foi escrita em C, trabalha nativamete com C++, e há ligações disponíveis para outras linguagens incluindo C# e Python. SDL 2.0 é distribuída sob a licença zlib. Esta licença permite que use SDL livremente em qualquer software.
7 Por que?
8 Por que SDL? Abstração do hardware Programador
9 Por que SDL? Portabilidade
10 Camadas SDL
11 O que é SDL? Simple Directmedia Layer Biblioteca multimídia voltada para jogos Vídeo Som Interface com o usuário (teclado, mouse, joystick) CD-Áudio Threading Controle de tempo
12 Exemplos
13 Requisitos Conhecimento de programação em C/C++ Ambiente de programação C/C++ Instalar a biblioteca no ambiente de programação Preferencialmente hardware de som, mouse, joystick e CD-ROM (para testes)
14 Instalando
15 Instalando Download -> SDL2 x.x (mais recente) Development Libraries (para sua plataforma) ou Source code (código-fonte) (deve ser compilado)
16 Instalando no MinGW Baixar o arquivo.tar.gz correspondente ao MinGW Copiar as pastas Include e Lib para a pasta do MinGW É interessante configurar o windows para que seja possível usar o comando gcc em qualquer diretório. Para compilar: gcc prog.c -o prog -IC:\mingw\include\SDL2 -LC:\mingw\lib -lmingw32 -lsdl2main -lsdl2
17 Subdivisões SDL é composta de várias subbibliotecas. SDL_image trata de imagens SDL_mixer trata de sons SDL_ttf gerencia fontes etc
18 MinGW SDL_image Baixar o arquivo SDL2_image-devel-X.X.X- XX.zip de correspondente ao MinGW windows32 Copiar as pastas Include e Lib para a pasta do MinGW Para compilar: gcc prog.c o prog.exe -Wall lmingw32 lsdlmain lsdl2 lsdl2_image
19 MinGW SDL_mixer Baixar o arquivo SDL_mixer-devel-X.X.X- XX.zip de correspondente ao MinGW windows32 Copiar as pastas Include e Lib para a pasta do MinGW Para compilar: gcc prog.c o prog.exe -Wall lmingw32 lsdlmain lsdl2 lsdl2_image lsdl2_mixer
20 MinGW SDL2_gfx No Ubuntu instalar a versão libsdlgfx1.x-dev Para compilar: gcc prog.c o prog.exe -Wall lmingw32 lsdlmain lsdl2 lsdl2_image lsdl2_mixer -lsdl2_gfx
21 Observações Cuidados no Windows A SDL redireciona stdout e stderr para os arquivos stdout.txt e stderr.txt Tentar ler de stdin geralmente causa problemas.
22 Conceitos Básicos
23 Observações Prog C
24 Conceitos básicos A função da API SDL de vídeo é simplesmente encontrar e configurar um dispositivo para você usar. Uma vez iniciado o display, criada a janela ou colocada a tela em um determinado modo, SDL deve sair do caminho. SDL fornece um conjunto mínimo de funções para mover blocos de pixels, gerenciar o teclado, mouse e só. SDL não é uma ferramenta de desenho. O que você faz depois que ocorre a inicialização é problema seu.
25 Conceitos básicos SDL trabalha baseado em eventos. Normalmente o programa não controla o seu fluxo. Ele fica em um laço esperando eventos acontecerem. O programa deve reagir a eventos. Um evento é uma mensagem enviada do sistema operacional ao seu programa. Tipos de eventos: tecla apertada, mouse andou, termina etc.
26 Conceitos básicos SDL especifica tipos quando tamanho dos tipos é importante Unsigned: Uint32, Uint16, Uint8 Signed: Sint32, Sint16, Sint8 Algumas vezes: Uint64, Sint64 (somente se SDL_HAS_64BIT_TYPE for definido) Também SDL_Bool (assume valores SDL_FALSE ou SDL_TRUE)
27 Programa básico em SDL Loop principal while(!stop) { while(sdl_pollevent(&event)) { switch (event.type){ case SDL_QUIT: stop = 1; break; case SDL_KEYDOWN: /*Trata */ /* case outros eventos */ } } }
28 Superfícies SDL usa estruturas chamadas superfícies (do tipo SDL_Surface) para representar dados gráficos. Uma superfície é somente um bloco de memória para armazenar uma região retangular de pixels. Cada superfície tem uma largura, altura e um formato específico para armazenar os pixels.
29 Conceitos básicos Uma superfície é uma matriz bidimensional de pontos, onde cada ponto representa uma cor composta por três componentes: R, G e B (vermelho, verde e azul). Um PixelFormat é uma estrutura que define o formato em que as cores dos pixels são armazenadas.
30 Superfícies SDL carrega arquivos de imagens diretamente nas estruturas de superficie. A tela (screen) também é uma superfície, embora especial. Superfícies podem ser copiadas para cima de outras em uma operação chamada blit (block image transfer).
31 Superfícies Blits são parte fundamental da programação de jogos. Com blits é possível fazer imagens a partir de outras imagens prédesenhadas. Desde que a tela é uma superfície como qualquer outra, imagens podem ser copiadas para a tela (screen) com uma única operação de blit. A função de blit é muito rápida.
32 Superfícies
33 Programando
34 Programa básico em SDL Incluir a biblioteca #include <SDL2/SDL.h> Declarar a função main como int main (int argc, char** argv) Declarar variáveis SDL_Surface* screen; SDL_Window* window; SDL_Event event; int stop = 0;
35 Programa básico em SDL Inicializar SDL_Init(flags); flags é um ou-binário dos valores: SDL_INIT_VIDEO SDL_INIT_AUDIO SDL_INIT_JOYSTICK SDL_INIT_CDROM SDL_INIT_TIMER SDL_INIT_EVERYTHING SDL_Init(SDL_INIT_VIDEO SDL_INIT_AUDIO);
36 Programa básico em SDL Criar a janela screen = SDL_CreateWindow(const char* title, int x, int y, int w, int h, int flags); flags é um ou de SDL_WindowFlags (p. ex) SDL_WINDOW_FULLSCREEN SDL_WINDOW_SHOWN SDL_WINDOW_HIDDEN SDL_WINDOW_MINIMIZED SDL_WINDOW_INPUT_FOCUS SDL_WINDOW_MOUSE_FOCUS
37 Programa básico em SDL Loop principal while(!stop) { while(sdl_pollevent(&event)) { if(event.type == SDL_QUIT) { stop = 1; } } SDL_UpdateWindowSurface(window); }
38 Programa básico em SDL Para encerrar, escolher /* colocar no final */ SDL_Quit(); return 0; /* ou colocar no inicio, garante que SDL_Quit será executado */ atexit(sdl_quit);
39 Programa básico em SDL #include <SDL2/SDL.h> #include <stdio.h> int main( int argc, char* args[ ] ) { SDL_Window* window = NULL;//The window we'll be rendering to SDL_Surface* screensurface = NULL; //The surface contained // by the window if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) { printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() ); } else { window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN ); if( window == NULL ) { printf( "Window couldnt be created! Error: %s\n", SDL_GetError() ); }
40 Programa básico em SDL } else { screensurface = SDL_GetWindowSurface( window ); //Fill the surface white SDL_FillRect( screensurface, NULL, SDL_MapRGB( screensurface->format, 0xFF, 0xFF, 0xFF ) ); SDL_UpdateWindowSurface( window ); SDL_Delay( 2000 ); //Wait two seconds } } SDL_DestroyWindow( window ); //Destroy window SDL_Quit(); //Quit SDL subsystems return 0;
41 Funções gráficas /* Alguns exemplos */ /* programa grafico.c */ linergba(screen, 20, 10, 70, 90, 255, 0, 0, 255); boxrgba(screen, 210, 76, 325, 300, 255, 0, 0, 150); short x[6] = { 350, 275, 300, 325, 350, 400 }; short y[6] = { 325, 325, 390, 390, 375, 300 }; polygonrgba(screen, x, y, 6, 255, 255, 255, 155);
42 Programa básico em SDL
43 Superfícies Uma superfície com o PixelFormat da tela my_surf = SDL_CreateRGBSurface(flags, width, height, screen->format->bitsperpixel, screen->format->rmask, screen->format->gmask, screen->format->bmask, screen->format->amask);
44 Superfícies e Arquivos Criando uma superfície a partir de um arquivo BMP my_surf = SDL_LoadBMP( file.bmp );
45 Superfícies e Arquivos Criando uma superfície a partir de um arquivo BMP, PNM, XPM, LBM, PCX, GIF, JPEG, PNG, TGA, TIFF (usando a biblioteca SDL2_image) #include <SDL2_image.h> mage/
46 Superfícies e Arquivos SDL_Surface* gpngsurface, optsurface; int imgflags = IMG_INIT_PNG; if (!(IMG_Init(imgFlags) & imgflags)) { printf( Error: %s\n, IMG_GetError()); } gpngsurface = IMG_Load(./loaded.png ); if (gpngsurface == NULL) { printf( Error: %s\n, IMG_GetError()); } else { optsurface = SDL_ConvertSurface(gPNGSurface, GscreenSurface->format, 0); if (optsurface == NULL) {
47 Blits Um blit é uma cópia de parte da imagem de uma superfície para outra src é a superfície de origem dst é a superfície de destino srcrect é a área de origem dstrect é a área de destino Se srcrect ou dstrect forem NULL, significa toda a área da superfície SDL_BlitSurface(src, srcrect, dst, dstrect); Arquivo: ex1.c
48 Superfícies srcrect={x,y,w,h}; dstrect={0,0,w,h}; (0,0) (x,y) h h w src w Arquivo: ex1.c dst
49 Atualizando a tela Para atualizar parte da tela int SDL_UpdateWindowSurfaceRects( SDL_Window* window, const SDL_Rect* rects, int numrects) Para atualizar toda a tela SDL_UpdateWindowSurface(SDL_Window* window);
50 Color-Key As vezes é necessário tornar uma cor transparente (color-key). Original Com color-key
51 Color-key Tornar uma cor transparente SDL_SetColorKey(surface, SDL_SRCCOLORKEY, SDL_MapRGB(surface->format, r, g, b)); Desligar a cor transparente SDL_SetColorKey(surface, 0, 0);
52 Transparência-alpha Em outras situações toda uma imagem precisa se tornar transparente. Neste caso podemos ter imagens a frente de outras. Exemplo: um fantasma andando por um ambiente.
53 Transparência Dar um valor de transparência geral SDL_SetAlpha(surface,SDL_SRCALPHA, val); val: 0 (transparente) a 255 (opaco) Desligar a transparência geral SDL_SetAlpha(surface, 0, 0); Arquivos: ex2xx.c
54 Cursor do Mouse Mostrar/esconder o cursor SDL_ShowCursor(int toggle); SDL_ENABLE mostra o cursor SDL_DISABLE esconde o cursor SDL_QUERY retorna o estado atual Mover o cursor SDL_WarpMouseGlobal(int x, int y); SDL WarpMouseInWindow(SDL_Window *window, int x, int y);
55 Eventos Tipos de eventos SDL_ACTIVEEVENT SDL_KEYDOWN / SDL_KEYUP SDL_MOUSEMOTIONEVENT SDL_MOUSEBUTTONDOWN / SDL_MOUSEBUTTONUP SDL_JOYAXISMOTION SDL_JOYBALLMOTION SDL_JOYHATMOTION SDL_JOYBUTTONDOWN / SDL_JOYBUTTONUP SDL_QUIT SDL_SYSWMEVENT SDL_VIDEORESIZE SDL_VIDEOEXPOSE SDL_USEREVENT
56 Eventos Lendo eventos SDL_Event event; while(sdl_pollevent(&event)) { switch(event.type) { case tipo1: /*... */ break; case tipo2: /*... */ break; /*... */ case tipon: /*... */ break; } }
57 Eventos do Teclado Teclado Dados do evento: event.key type: SDL_b, SDL_z, SDL_KEYDOWN ou SDL_KEYUP state: SDL_PRESSED ou SDL_RELEASED Dados da tecla: event.key.keysym sym: constante em SDLKey unicode: caracter (formato Unicode/ASCII) mod: modificadores (ou-binário de constantes em SDLMod) Arquivo: 04_keysAdriano_SDL.c
58 Eventos do Mouse Movimentação do mouse TIPO: if (event.type==sdl_mousemotion) Dados do evento em event.motion event.motion.x, event.motion.y são as novas coordenadas do mouse event.motion.xrel,event.motion.yrel é o deslocamento relativo a última posição event.motion.state pode ser igual a SDL_PRESSED, SDL_RELEASED
59 Eventos do Mouse Clique do mouse TIPO: if (event.type == SDL_MOUSEBUTTONDOWN) Dados do evento em event.button event.button.button pode ser igual a: SDL_BUTTON_LEFT SDL_BUTTON_MIDDLE SDL_BUTTON_RIGHT event.button.state pode ser igual a: SDL_PRESSED SDL_RELEASED Arquivo: ex4.c
60 Eventos Outros eventos Joysticks Redimensionamento da janela Encerramento Eventos gerados pelo usuário
61 CD-Áudio Número de drives de CD n_drives = SDL_CDNumDrives(); Abrir um drive para acesso SDL_CD* cdrom = SDL_CDOpen(n); Tocar uma trilha SDL_CDPlayTracks(cdrom, track, 0, 1, 0); Trilhas começam em zero Fechar um drive para acesso SDL_CDClose(cdrom); Arquivo: ex5.c
62 Som Utilizando a biblioteca SDL_mixer Inicializando SDL_Init(... SDL_INIT_AUDIO); Mix_OpenAudio(freq, format, channels, bufsize); freq: frequência de amostragem (ex Hz) format: formato de saída (ex. 16bits) channels: 1 (mono) ou 2 (estéreo) bufsize: tamanho do buffer (ex. 4096) Tipicamente Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2,4096);
63 Som Carregando um som Mix_Chunk* sound = Mix_LoadWAV("kaboom.wav"); Ajustando o volume de um som Mix_VolumeChunk(sound, volume); 0 <= volume <= MIX_MAX_VOLUME Liberando a memória Mix_FreeChunk(sound);
64 Som Alocando canais de saída Mix_AllocateChannels(n_channels); Tocando um som em um canal Mix_PlayChannel(channel, sound, loops); channel: número do canal channel = -1: primeiro disponível loops: número de repetições loops = 0: tocar uma vez loops = -1: tocar para sempre
65 Som Carregando uma música Mix_Music* music = Mix_LoadMUS( boogie.mp3 ); WAVE, MOD, MIDI, OGG, MP3 Tocando uma música Mix_PlayMusic(music, loops); loops: número de repetições loops = 0: tocar uma vez loops = -1: tocar para sempre Ajustando o volume da música Mix_VolumeMusic(sound, volume); 0 <= volume <= MIX_MAX_VOLUME
66 Som Encerrando Mix_CloseAudio(); Outras funções Fade in/out Panning Distância Posição (som 2D) Arquivo: ex6.c
67 Tempo Contagem de tempo time = SDL_GetTicks(); Retorna o número de ms desde a inicialização Criando um temporizador id = SDL_AddTimer(interval, func, param); Chama a função func a cada interval ms passando os parâmetros interval e param Uint32 func(uint32 interval, void *param); Cancelando um temporizador SDL_RemoveTimer(id); Arquivo: ex7.c
68 Encerrando Assuntos não abordados Joysticks Threads Onde conseguir ajuda group=gmane.comp.lib.sdl s
69 O Fim
Introdução à SDL. por Bruno Bottino Ferreira Adriano Cruz
Introdução à SDL por Bruno Bottino Ferreira tinnus@gmail.com Adriano Cruz adriano@nce.ufrj.br Agenda Por que? Instalando Conceitos Básicos Programando Por que? Por que SDL? Abstração do hardware Programador
Leia maisProf. MSc. João Ricardo Bittencourt
Introdução à SDL Prof. MSc. João Ricardo Bittencourt UNISINOS Sumário 1. Outros formatos de imagens (PNG,JPEG,...) 2. Texto (Fontes TTF) 3. Eventos 4. Sincronismo 5. SDL & OpenGL 6. Som 7. Rede Outros
Leia maisSDL e SMPEG. Multimídia multiplataforma MPEG. SDL MPEG Player Library. Neste artigo você irá aprender um pouco sobre as bibliotecas SDL e
Multimídia multiplataforma SDL e SMPEG Neste artigo você irá aprender um pouco sobre as bibliotecas SDL e SMPEG e sobre o formato MPEG de compactação de vídeo e áudio. Além disso, você irá interagir com
Leia maisProgramação Gráfica Parte 2 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano
Programação Gráfica Parte 2 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano Paulo V. W. Radtke pvwradtke@gmail.com http://www.ppgia.pucpr.br/~radtke/jogos/ AVISO IMPORTANTE!! Esta versão é dedicada exclusivamente
Leia maisLinguagem 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 maisDiversão com Software Livre
Diversão com Software Livre Jogos e ferramentas para desenvolvê-los Leandro Motta Barros lmb@stackedboxes.org Dia da Liberdade de Software 2009 02009-09-19 Agenda Introdução Jogos Ferramentas Notas finais
Leia maisIDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias
1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisUSP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Leia maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Profa Rosana Braga 1º semestre de 2010 1 Arquivo-FONTE /*******************************/ /* Primeiro exemplo arq exemplo1.c
Leia maisIntrodução ao OpenCV
Instituto Federal Sul-rio-grandense Campus Pelotas Engenharia Elétrica Processamento de Imagens Digitais Introdução ao OpenCV (Parte I) Glaucius Décio Duarte Atualizado em: 20 ago. 2018 OpenCV (Open Source
Leia maisDesenho de uma matriz de retângulos Serve de base para o exercício das cores
Desenho de uma matriz de retângulos Serve de base para o exercício das cores Leandro Tonietto Processamento Gráfico - Unisinos ltonietto@unisinos.br http://professor.unisinos.br/ltonietto 19-Mar-2014 Leandro
Leia maisEstruturas 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 maisLinguagem 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 maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Aula Passada 1º Programa: olamundo.c #include // biblioteca padrão de E/S /* Programa Olá Mundo */ int main(void) { printf( Olá mundo\n ); //exibe Olá mundo
Leia maisNo Windows há basicamente dois tipos de programas de usuário:
Introdução O que vem a ser um programa em C? Você talvez já tenha ouvido falar que um compilador é um programa ou ferramenta que transforma um programa fonte escrito em uma linguagem de programação de
Leia maisInstalação JDK 10/03/2017
1 Instalação JDK 10/03/2017 Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação, responsável por traduzir o que sua aplicação
Leia maisComputação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 2. Introdução a OpenGL
Computação Gráfica Engenharia de Computação CEFET/RJ campus Petrópolis Prof. Luis Retondaro Aula 2 Introdução a OpenGL OpenGL básico OpenGL (Open Graphical Library) Uma API para geração de gráficos 3D
Leia maisDisciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 - BSI Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:
Leia maisSO Conceitos Básicos. Gerência. Objetivos do SO 07/05/2011. Qual sistema operacional escolher? Qual sistema operacional escolher?
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE 1 2 SO Conceitos Básicos UNIDADE I INTRODUÇÃO À INFORMÁTICA: SISTEMA OPERACIONAL USO E OPERAÇÃO Em torno do computador
Leia maisAnhanguera Educacional S.A. Centro Universitário Ibero-Americano
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações
Leia maisUSP - ICMC - SSC SSC o. Semestre BSI. Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 - BSI Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:
Leia maisConhecendo a Linguagem de Programação C
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como
Leia mais#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
Leia mais3. 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 maisLinguagens de Programação I
Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler
Leia maisEstruturas de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números
Leia maisPIC - PROGRAMAÇÃO LINGUAGEM C. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR
PIC - PROGRAMAÇÃO LINGUAGEM C AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR acjunior@facthus.edu.br UBERABA MG 1º SEMESTRE 2009 FLUXOGRAMAS FLUXOGRAMAS Fluxograma para somar dois números e guardar em uma terceira
Leia maisInstalação JDK. Joyce França. Professora de Ciência da Computação - IFNMG
Instalação JDK Joyce França Professora de Ciência da Computação - IFNMG Máquina Virtual Java utiliza-se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação,
Leia maisEntender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação
Entender o problema Encontrar um algoritmo para resolvê-lo Implementar o algoritmo numa linguagem de programação Permitem implementar um algoritmo Expressar o algoritmo numa forma que o computador entenda
Leia maisA Linguagem C. A forma de um programa em C
A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de
Leia maisOpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017)
Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição
Leia maisSumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Leia maisRevisão C++ - Parte 1
Revisão C++ - Parte 1 Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes 5/3/2010 Objetivo da Aula 5/3/2010 5/3/2010 OBJETIVO DA AULA Revisar os principais comandos
Leia maisProgramação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros
Leia maisPasso-a-passo para desenvolver um Programa usando a Linguagem Python
Cursos: Engenharia de Produção / Tecnólogo em Gestão da Qualidade Disciplina: Informática Professora: Flávia Pereira de Carvalho Passo-a-passo para desenvolver um Programa usando a Linguagem Python 1)
Leia maisOpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 15/08/2018)
Computação Gráfica - Aula 2 (atualizada em 15/08/2018) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição tridimensional
Leia maisLinguagem de Programação C. Prof. Fabrício Olivetti de França
Linguagem de Programação C Prof. Fabrício Olivetti de França Linguagem C 2 Linguagem C Imperativo e estruturado Pequeno conjunto de palavras-chaves, operadores, etc. Tipagem estática, porém fraca Permite
Leia maisLinguagem C Ficheiros Compilação Separada
Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir
Leia maisTrabalho GA - Editor de Cenário Isométrico
Objetivo A tarefa consiste em criar um editor gráfico de cenários para jogos 2D com visão isométrica. O editor deve permitir que o usuário possa criar, abrir e editar mapas (tilemaps) com tileset de visão
Leia maisCAP. 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 maisProgramação Gráfica Parte 1 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano
Programação Gráfica Parte 1 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano Paulo V. W. Radtke pvwradtke@gmail.com http://www.ppgia.pucpr.br/~radtke/jogos/ AVISO IMPORTANTE!! Esta versão é dedicada exclusivamente
Leia maisDisciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia maisIntrodução à Informática. Professor: Francisco Ary
Professor: Francisco Ary O que vimos na ultima aula: O que é Software? parte lógica de um sistema computacional; sequência de instruções interpretada e executada por um computador(processador); Principais
Leia maisTópicos em C. Eliade F. Lima
Tópicos em C Eliade F. Lima maio/2010 Criada em 1972, por Dennis Ritchie, nos laboratórios Bell, para ser usada no sistema operacional UNIX. Linguagem de propósito geral, sendo adequada à programação estruturada.
Leia maisLinguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira
Linguagem C Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João
Leia maisProgramação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009
Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Ao desenvolver os seguintes programas tenha em atenção o bom uso dos comentários, o uso da indentação e o correcto nome
Leia maisIntrodução à Informática. Professor: Francisco Ary
Professor: Francisco Ary O que vimos na ultima aula: O que é Software? parte lógica de um sistema computacional; sequência de instruções interpretada e executada por um computador(processador); Principais
Leia maisExiste uma quantidade de informação que pode ser armazenada para resolver o problema.
Arquivos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem sempre é conveniente. Problemas: A informação é perdida; As estruturas de dados são
Leia maisLógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo
Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Este documento explica como transformar um algoritmo escrito na forma pseudocódigo
Leia maisArquitetura 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 maisIntrodução à Programação Aula 16. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 16 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação COMO UM PROGRAMA C É COMPILADO? 2 Compilação de um Programa A compilação
Leia maisProgramação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem
Leia maisIntrodução à Programação
Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de
Leia maisIntrodução à Linguagem C
Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br
Leia maisINTRODUÇÃO À LINGUAGEM C
INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2018) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima
Leia maisLinguagem C. André Tavares da Silva.
Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2011 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia maisDepartamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos
Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I Aula 13 Arquivos Responsável Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com
Leia maisLaboratório de Programação com Games. Conteúdo: Professor: - Conceitos de programação com Python. Instituto de Computação - UFF
Laboratório de Programação com Games Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: - Conceitos de programação com Python 1 Roteiro O que é a biblioteca PPlay Instalação da biblioteca PPlay
Leia maisCurso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM
Curso de C Introdução 1 Introdução Roteiro: Recordando Algoritmos Linguagem de Programação O computador Instruções de Máquina Níveis de Abstração Compilação 2 Algoritmos Recordando: Algoritmo: conjunto
Leia maisCerne. Conhecimento para o Desenvolvimento (21) (11) MSN:
Conhecimento para o Desenvolvimento Cerne Tecnologia e Treinamento Apostila Visual C++ Express Aplicado à Eletrônica (21) 4063-9798 (11) 4063-1877 E-mail: cerne@cerne-tec.com.br MSN: cerne-tec@hotmail.com
Leia maisModulo 4: while do while (limites de variáveis)
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 4: while do while (limites de variáveis) Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro Até aqui apreendemos as estruturas: If e If...else Switch
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Funções
Algoritmos e Estruturas de Dados I (DCC/003) Funções Funções Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada, e definem um valor de saída
Leia maisINTRODUÇÃO À LINGUAGEM C
INTRODUÇÃO À LINGUAGEM C Prof. Bruno Feijó, Dept. de Informática, PUC-Rio (2017) C foi criado no início da década de 70, quando os programas mais eficientes eram escritos em linguagem Assembly, bem próxima
Leia maisINF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010
Sistemas Gráficos INF1339 Computação Gráfica Tridimensional Waldemar Celes celes@inf.puc-rio.br sala 505 RDC Tecgraf, DI/PUC-Rio 2 de Agosto de 2010 W. Celes Sistemas Gráficos 1 Visualização 3D Objetivo
Leia maisSobre o Visual C++ 2010
O Visual Studio é um pacote de programas da Microsoft para desenvolvimento de software, suportando diversas linguagens como C#, C++, C, Java, Visual Basic, etc. Nesta série de tutoriais vou focar apenas
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisLinguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná
Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída
Leia maisMaterial sobre Funções AEDS 1
Material sobre Funções AEDS 1 1 Funções - revisão Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada e definem um valor de saída 2 Funções -
Leia maisIntrodução a Programação de Jogos
Introdução a Programação de Jogos Aula 07 Utilizando Imagens na PlayLib Prof. Augusto Baffa < abaffa@inf.puc-rio.br> Biblioteca Gráfica - PlayLib Conjunto de funções para criação e manipulação de formas
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisPodemos extrair áudio através de microfones, vídeos, compact disc (CD), digital vídeo disc (DVD) entre outras.
Aula 08 Áudio Arquivos sonoros Em computação arquivo de som ou arquivo sonoro é um formato de arquivo que permite armazenamento de áudio digital. Em geral este arquivo armazena amostras de som em intervalos
Leia maisRevisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
Leia maisPIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS
PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS Disciplina de Nivelamento - 2000/1: ALGORITMOS & ESTRUTURAS DE DADOS Professor Responsável: Prof. Fernando Santos
Leia maisIntrodução à Linguagem C. K&R: Capitulo 1. Introdução IAED, 2014/2015 2
Introdução Introdução à Linguagem C K&R: Capitulo 1 Desenvolvida em 1972 por Dennis Ritchie, nos Bell Labs, para utilização no sistema operativo UNIX O standard ANSI C (ISO/IEC 9899:1990) foi adoptado
Leia maisJAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
Leia maisProgramação Estruturada
Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada
Leia maisIntrodução à linguagem C++
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas
Leia maisIntrodução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 04 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL LINGUAGEM IREMOS ESTUDAR? 2 Introdução à Programação Linguagens
Leia maisEstrutura 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 maisAmbiente 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 maisLinguagem C (repetição)
Linguagem C (repetição) André Tavares da Silva andre.silva@udesc.br Exercício Escrever um programa que conte (mostre na tela) os números de 1 a 100. Comandos aprendidos até o momento: printf, scanf, getchar,
Leia maisUniversidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton
Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton nilton@comp.uems.br Introdução A linguagem C foi inventada por Dennis Ritchie e
Leia maisEngenharia Elétrica Computação Gráfica - Aula 2 (atualizada em 22/04/2018)
Computação Gráfica - Aula 2 (atualizada em 22/04/2018) glaucius@pelotas.ifsul.edu.br OpenGL O que é OpenGL? OpenGL é uma biblioteca de rotinas gráficas de modelagem, manipulação de objetos e exibição tridimensional
Leia maisConceitos Básicos Linguagem C
Conceitos Básicos Linguagem C PROF. MAURÍCIO A DIAS MACDIASPAE@GMAIL.COM 2 Método Método básico para construção de algoritmos 1. Compreender completamente o problema a ser resolvido, se possível dividindo
Leia maisProgramação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral
Programação I PRG29002 Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral 2016-2 Níveis de linguagens Introdução ao C Um programa em C é composto por um conjunto de Funções. A função
Leia maisProgramação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012
Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012 1. Implemente os programas cujos fluxogramas foram definidos na aula de problemas da semana passada: Exercício 7- Calculo
Leia mais3. 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.4. Estruturas de Controle 3.4.1. Comandos
Leia maisSistemas 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 maisRevisão Linguagem C Parte 1
Revisão Linguagem C Parte 1 Comentários: Os comentários aparecem em verde e podem iniciados com /* e encerrados com */ quando utilizase várias linhas ou coloca-se // quando forem colocados em apenas uma
Leia maisDisciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisUsando Display Gráfico com C18 e C30
Usando Display Gráfico com C18 e C30 Elaborado por: Revisado por: Tiago Coelho Magalhães Marcelo M. M. do Couto José Domingos Adriano Todos os documentos aqui referidos neste material encontram-se na pasta
Leia maisLinguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C
Linguagem C Algoritmos e Lógica de Programação Reinaldo Gomes reinaldo@cefet-al.br Introdução Pré-processador Variáveis Operadores Introdução: Histórico Linguagem criada por Dennis Ritchie em 1972 Em 1973
Leia maisLinguagem de Programação C
Algoritmos e Lógica de Programação Linguagem C Reinaldo Gomes reinaldo@cefet-al.br Introdução Pé Pré-processador Variáveis Operadores Introdução: Histórico Linguagem criada por Dennis Ritchie em 1972 Em
Leia maisLaboratório de Introdução à Ciência da Computação I
Laboratório de Introdução à Ciência da Computação I Aula 1 - Estrutura Sequencial Professores: Vanderlei Bonato (responsável) - vbonato@icmc.usp.br Roberto de M. F. Filho (aluno PAE) - rmdff@icmc.usp.br>
Leia mais