EXERCÍCIO 1 MUDANDO AS CORES
|
|
|
- Daniel Carvalho Borges
- 9 Há anos
- Visualizações:
Transcrição
1 EXERCÍCIO 1 MUDANDO AS CORES O código abaixo ilustra o uso da comunicação ponto-a-ponto e a comunicação coletiva. Nesse código, uma matriz de três cores (verde, branco, vermelho e) é distribuída para todos os processos criados no início do programa MPI. Cada processo de muda de cor e envia a sua cor alterada atributo para o processo mestre (0), que mostra na tela a cor original e a cor alterada de cada processo. Depois de ter definido todas as variáveis necessárias que serão usadas no programa, é especificado qual será o processo de root. Esse será usado para transmitir, por broadcast, as cores para todos os outros processos e para imprimir as cores de cada um dos processos. Processo 0 foi escolhido como o processo de raiz. Em seguida, foram geradas as três cores distintas dinamicamente que serão utilizadas nos processos, uma matriz dinâmica vetorcores é criada para armazenar as cores: branco, vermelho e verde. N_cores = 3; colorarray = (int*) malloc(sizeof(int) * n_cores); for (k = 0; k < n_cores; k++) vetorcores[k] = k; É necessário inicializar o MPI, acessando o rank e total de processos que estão sendo executados. MPI_Comm_rank(MPI_COMM_WORLD, &procid); MPI_Comm_size(MPI_COMM_WORLD, &nproc); Então é enviado por broadcast todo o vetor de cores para cada processo utilizando o MPI_BCAST e cada um dos processores irá definir sua cor como verde (ultimo elemento do vetor. MPI_Bcast(vetorCores, n_cores, MPI_INT, root, MPI_COMM_WORLD); pcolor = vetorcores[2]; O rank do processador que chama o MPI_Bcast não foi especificado, pois todos os processadores no comunicador MPI_COMM_WORLD comunicador deve realizar esta chamada. Neste caso, é o processo root que envia o vetorcores, para cada um dos processos no comunicador. Além disso, não existe nenhuma parâmetro TAG incluído na função MPI_Bcast. Esse parâmetro não é necessário porque nesta operação de comunicação coletiva, o número de elementos e o tipo de dados destes elementos são idênticas em todos os processos. Em seguida, todos os outros processos que não sejam root enviam sua cor de volta para o processo root, que então imprime a cor de cada um dos processos nproc. São usadas as diretivas MPI_Send e MPI_RECV para a comunicação entre os processos. Em seguida, é mudada a cor de cada processo, dependendo se o numero do processo é par ou ímpar (branco ou vermelho) e então a cor alterada é enviada para o root, para que esse imprima na tela novamente. Exemplo de saída na tela: processo 0 possui a cor verde processo 1 possui a cor verde processo 2 possui a cor verde processo 3 possui a cor verde processo 0 possui a cor branca processo 1 possui a cor vermelha processo 2 possui a cor branca processo 3 possui a cor vermelha
2 Código Fonte: #include <stdlib.h> #include "mpi.h" main (int argc, char* argv[]){ int procid, nproc, root, origem, target, tag; int k, n_cores, pcolor; int *vetorcores; char cores[10]; MPI_Status status; root = 0; // O root será o processo zero n_cores = 3; vetor_cores = (int*) malloc(sizeof(int) * n_cores); for (k = 0; k < n_cores; k++) vetorcores[k] = k; MPI_Comm_rank(MPI_COMM_WORLD, &procid); MPI_Comm_size(MPI_COMM_WORLD, &nproc); // Broadcast the array of colors to all processes MPI_Bcast(vetorCores, n_cores, MPI_INT, root, MPI_COMM_WORLD); pcolor = colorarray[2]; // Seleciona a cor 2 (verde) para todos os processos tag = pcolor; target = 0; if (procid!= root){ MPI_Send(&pcolor, 1, MPI_INT, target, tag, MPI_COMM_WORLD); else{ for (origem = 0; origem < nproc; origem++){ if (origem!= 0){ MPI_Recv(&pcolor, 1, MPI_INT, origem, tag, MPI_COMM_WORLD, &status); switch(pcolor){ case 0: sprintf(cores, "Branca"); case 1: sprintf(cores, "Vermelha"); case 2: sprintf(cores, "Verde"); default: printf("cor Invalida \n"); printf("processador %d possui a cor %s\n", origem, cores); printf("\n\n"); pcolor = procid%2; if (pcolor == 0){ sprintf(cores, "Branca"); else if (pcolor == 1){ sprintf(cores, "Vermelha"); else if (pcolor == 2){ sprintf(cores, "Verde"); // Access new process colors if (procid!= root){ MPI_Send(cores, 10, MPI_CHAR, root, tag, MPI_COMM_WORLD); else{ printf("processador %d possui a cor %s\n", root, cores); for (origem = 1; origem < nproc; origem++){ MPI_Recv(cores, 10, MPI_CHAR, origem, tag, MPI_COMM_WORLD, &status); printf("proc %d has color %s\n", origem, color); free(colorarray);
3 Exercício 2 Confirmar envio e recebimento #include <string.h> int rank, tam, tag=99; char msg[20]; if (rank == 0) { strcpy( msg, "Olá Mundo!\n"); MPI_Send( msg, strlen(msg)+1, MPI_CHAR, 1, tag, MPI_COMM_WORLD); // Envia uma mensagem para processo 1 strcpy( msg, Olá turma!\n ); MPI_Recv( msg, 20, MPI_CHAR, 0, tag, MPI_COMM_WORLD, &status); // Recebe uma mensagem provinda do processo 0 Exercício 3 Mais um de Broadcast #include <string.h> int rank, tam, tag=99; char msg[20]; if (rank == 0) { strcpy( msg, "Olá Mundo!\n"); MPI_Bcast( msg, 20, MPI_CHAR, 0, MPI_COMM_WORLD ); // Executa Broadcast com conteúdo no processo 0 MPI_Bcast( msg, 20, MPI_CHAR, 0, MPI_COMM_WORLD ); // Executa Broadcast com conteúdo no processo 0 printf( Processo %d msg =, rank );
4 Exercício 4 Distribuindo os dados utilizando Scatter int rank, tam, tag=99, origem=0; float matsend[4][4] ={{1, 2, 3, 4,{5, 6, 7, 8,{9, 10, 11, 12,{13, 14, 15, 16; float matrecv[4]; if (tam == 4) { MPI_Scatter( matsend, 4, MPI_FLOAT, matrecv, 4, MPI_FLOAT, origem, MPI_COMM_WORLD ); // Executa Scatter com conteúdo no processo origem= 0 printf( rank= %d Resultado: %f %f %f %f\n, rank, matrecv[0], matrecv[1], matrecv[2], matrecv[3]); if (rank==0) printf( Deve ser executado com número de processos igual a 4. Finalizado sem sucesso!\n ); Exercício 5 Distribuindo os dados utilizando Gather int rank, tam, tag=99, origem=0, i; float matsend[4][4]; float matrecv[4]; if (tam == 4) { for(i=0; i<4; i++) matrecv[i] = (float)rank*4 + i + 1; MPI_Gather(matrecv, 4, MPI_FLOAT, matsend, 4, MPI_FLOAT, origem, MPI_COMM_WORLD ); // Executa Gather com conteúdo de todos os processos if( rank == origem ) for(i=0; i<4; i++) printf( Resultado: %f %f %f %f\n, matsend[i][0], matsend[i][1], matsend[i][2], matsend[i][3]); if (rank==0) printf( Deve ser executado com número de processos igual a 4. Finalizado sem sucesso!\n );
5 Exercício 6 Utilizando o Reduce int rank, tam, tag=99, origem=0, i, result; int sendbuff, recvbuff; sendbuff = rank; MPI_Reduce( &sendbuff, &recvbuff, 1, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD ); // Executa Reduce para operação paralela if( rank == origem ) printf( Maior: %d\n, recvbuff); Exercício 7 Multiplicação de Vetores e Soma todos os elementos do vetores A e B double soma, soma_local, a[256], b[256]; int rank, TAM, tg=99, i, n = 256, primeiro, ultimo; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); MPI_Comm_rank(MPI_COMM_WORLD,&myid); primeiro = rank * n/tam; ultimo = (rank + 1) * n/tam; /* for (i = primeiro; i < ultimo; i++) { */ for (i = 0; i < n; i++) { a[i] = i * 0.5; b[i] = i * 2.0; soma_local = 0; for (i = primeiro; i < ultimo; i++) { soma_local = soma_local + a[i]*b[i]; MPI_Reduce (&soma_local, &soma, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); if (rank==0){ printf ("soma = %f", soma); for (i=0; i<n; i++){ printf ( Vetor a[%n] = %f, i,a[i]); printf ( Vetor b[%n] = %f, i,b[i]); printf ( Vetor c[%n] = %f, i,c[i]); Return 0;
Programação Paralela com Troca de Mensagens. Profa Andréa Schwertner Charão DLSC/CT/UFSM
Programação Paralela com Troca de Mensagens Profa Andréa Schwertner Charão DLSC/CT/UFSM Sumário Modelo de programa MPI Comunicação em MPI Comunicadores Mensagens Comunicação ponto-a-ponto Comunicação coletiva
Introdução a Computação Paralela: Rotinas MPI em Clusters Beowulf
Introdução a Computação Paralela: Rotinas MPI em Clusters Beowulf Miguel Dias Costa João Viana Lopes Centro de Física do Porto Estrutura do Curso Motivação Estrutura do Curso Motivação Conceitos de Computação
Computação por Passagem de Mensagens
Computação por Passagem de Mensagens Programação por passagem de mensagens Programação de multiprocessadores conectados por rede pode ser realizada: criando-se uma linguagem de programação paralela especial
Algoritmos Paralelos usando CGM/MPI. Edson Norberto Cáceres e Siang Wun Song DCT/UFMS e DCC/IME/USP Aula 05
Algoritmos Paralelos usando CGM/MPI Edson Norberto Cáceres e Siang Wun Song DCT/UFMS e DCC/IME/USP Aula 05 Algoritmos Paralelos BSP/CGM Objetivos Descrever algumas das principais técnicas para o desenvolvimento
QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TÉCNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI Cicero Augusto de Lara Pahins, Cristiano Reis dos Santos. Professora:
Arquitecturas Paralelas I Computação Paralela em Larga Escala. Passagem de Mensagens
Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI/LMCC - 4º/5º Ano Passagem de Mensagens João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Novembro 2004 Passagem
MPI (Message Passing Interface)
MPI (Message Passing Interface) Standard desenvolvido por académicos e indústria. Define rotinas, não a implementação. Não define como se criam os processos (depende da implementação) Existem várias implementações
Message Passing Interface - MPI
Message Passing Interface - Pedro de Botelho Marcos Maio/2008 1 Sumário Introdução; Conceitos básicos; Comunicação; Principais rotinas; Compilando e executando códigos ; Exemplos; Referências; 2 Introdução
Parte da Tarefa. Parte da Tarefa. Parte da Tarefa SEND RECEIVE SEND RECEIVE
Produto Escalar com MPI-2 (C++) Aula Sistemas Distribuídos Prof. Dr. Marcelo Facio Palin [email protected] 1 1 O que é Paralelismo? Conceitos Paralelismo é uma técnica usada em tarefas grandes e complexas
Estruturas de Dados Aula 6: Cadeias de 28/03/2010
Estruturas de Dados Aula 6: Cadeias de Caracteres 28/03/2010 Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
INF 1620 P1-04/10/03 Questão 1 Nome:
INF 1620 P1-04/10/03 Questão 1 a) Implemente uma função para calcular as raízes de uma equação do segundo grau do tipo ax 2 +bx+c=0. O protótipo dessa função deve ser: void raizes (float a, float b, float
Message Passing Interface
Message Passing Interface Gonzalo Travieso 2011 Sumário 1 Conceitos Básicos 2 Inicialização e Finalização........................................... 3 Processos....................................................
Programação Paralela em Memória Compartilhada e Distribuída
Programação Paralela em Memória Compartilhada e Distribuída Prof. Claudio Schepke [email protected] Prof. João V. F. Lima [email protected] (baseado em material elaborado por professores
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
ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais
Computação Informática
Computação Informática Linguagem C Matrizes em C Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO 1 Estrutura de Dados Homogênea matrizes Uma matriz computacional é um váriável composta capaz de armazenar uma
INF 1620 P1-11/04/08 Questão 1 Nome:
INF 1620 P1-11/04/08 Questão 1 Nas Olimpíadas, em uma determinada modalidade esportiva, os competidores recebem a nota de quatro jurados e a nota final é o resultado da média das quatro notas menos um
Linguagem C (estruturas condicionais)
Linguagem C (estruturas condicionais) André Tavares da Silva [email protected] Comandos de Controle de Fluxo Todos os comandos devem ser terminados com um ;. { e são usados para delimitar um
Lógica de Programação I
Gilson de Souza Carvalho [email protected] 1 Comando Switch O comando Switch pode ser visto como uma especialização do comando if. Foi criado para facilitar um uso particular de comandos if encadeados.
ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Introdução à Ciência da ComputaçãoI Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais Estrutura
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
Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany [email protected] ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
Introdução à Programação. Expressões Booleanas e Comandos Condicionais
Introdução à Programação Expressões Booleanas e Comandos Condicionais Comandos Condicionais Misture os ingredientes Unte forma com manteiga Despeje a mistura na forma Algoritmo para preparação de bolo
O que é um apontador em C (type pointer in C)?
O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora
INF 1620 P1-18/09/04 Questão 1 Nome:
INF 1620 P1-18/09/04 Questão 1 Considerando a definição da série harmônica abaixo: H n =1+ 1 2 + 1 3 + 1 4 + 1 5 + K+ 1 n (a) Escreva uma função que calcule o valor de H n dado o número de termos da série
Introdução. Programação Paralela. Motivação. Conhecimento do Hardware. Análise de Desempenho. Modelagem do Problema
Introdução Programação Paralela Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes Programação paralela é a divisão de um problema em partes, de maneira que essas partes possam ser executadas paralelamente
Programação Paralela. Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes
Programação Paralela Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes Introdução Programação paralela é a divisão de um problema em partes, de maneira que essas partes possam ser executadas paralelamente
Relatório Trabalho 1 Programação Paralela
Relatório Trabalho 1 Programação Paralela Gustavo Rissetti 1 Rodrigo Exterckötter Tjäder 1 1 Acadêmicos do Curso de Ciência da Computação Universidade Federal de Santa Maria (UFSM) {rissetti,[email protected]
Revisã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
Métodos Computacionais em Física
Métodos Computacionais em Física Tatiana G. Rappoport [email protected] 214-2 Variáveis indexadas (arrays) Diversos problemas requerem o uso de vetores ou matrizes: Um conjunto de dados do mesmo tipo
Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercícios 1) Crie uma função que recebe os coeficientes de uma função do 2o. grau e retorna as raízes sem usar vetor. 2) Faça um programa que acha o maior e o menor inteiro dentro de um vetor de 10 inteiros,
Strings. Adaptado de Deise Saccol
Strings Adaptado de Deise Saccol 1 Strings Não existe um tipo String em C. Strings em C são uma array do tipo char que termina com \0. Para literais String, o próprio compilador coloca \0. #include
Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes
Computação 2 Aula 2 Vetores e Matrizes Profª. Fabiany [email protected] Vetores Vetor também é conhecido como variável composta homogênea unidimensional; Um vetor computacional é um variável composta
Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU
Aula 8 Oficina de Programação Vetores Profa. Elaine Faria UFU - 2017 Variáveis Compostas Homogêneas O que uma variável composta homogênea? - Conjunto de variáveis do mesmo tipo - É chamada de forma geral
ESTRUTURAS COMPOSTAS
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR Clique para adicionar texto Profa. Dra. Elisa Yumi Nakagawa 1. Semestre de 2017 Slides inicialmente preparados pela Profa. Rosely Sanches
CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho
CURSO BÁSICO DE PROGRAMAÇÃO AULA 15 Revisão Vetores e Matrizes Trabalho Definição: Introdução a Linguagem C Vetores Estrutura que permite armazenar um conjunto de dados do mesmo tipo na mesma variável;
Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02
Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração
ESTRUTURAS COMPOSTAS VETOR
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR slides desenvolvidos pela Profa. Rosely Sanches 2 ESTRUTURAS COMPOSTAS Pode-se organizar tipos simples em tipos mais complexos formando as
Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os
TÉCNICAS DE PROGRAMAÇÃO. Estrutura de dados
TÉCNICAS DE PROGRAMAÇÃO Estrutura de dados O que são estrutura de dados? É a forma como os armazenamos tipos de dados, vistos dia a dia, ou seja, nada mais são do que a transformação de uma forma de armazenamento
Ponteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Legibilidade do código fonte
Sumário Legibilidade do código fonte Exemplos Normas Instrução switch Sintaxe e Semântica Exemplo Tipos enumerados Exemplo Programação 2007/2008 DEEC-IST 1 Legibilidade do código fonte Exemplo: Considere
Linguagem de Programação C. Comandos de Seleção e Desvio
Cristiano Lehrer Valores Lógicos Em C não existe nenhum tipo específico de dados para armazenar valores lógicos. Em C o valor lógico FALSO é representado por 0 (ZERO). Tudo aquilo que seja diferente de
Aula 15 Variáveis Indexadas (vetores)
Aula 15 Variáveis Indexadas (vetores) Além das variáveis normais já conhecidas, podemos ter também variáveis indexadas. Tais variáveis são referenciadas por um nome e um índice. Especialmente úteis para
#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
ESTRUTURAS COMPOSTAS. Variáveis Compostas Unidimensionais VETOR. Baseado nos slides de Rosely Sanches e Simone Senger de Souza
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR Baseado nos slides de Rosely Sanches e Simone Senger de Souza 2 ESTRUTURAS COMPOSTAS Pode-se organizar os dados dos tipos simples em tipos
Vetores II. Strings Leitura e exibição Biblioteca string.h Operações com Strings. Matrizes Definição de Acesso Operações com Matrizes
Strings Leitura e exibição Biblioteca string.h Operações com Strings Matrizes Definição de Acesso Operações com Matrizes Utilidade da String Facilidade de manipulação de um grande conjunto de caracteres
Exercícios em C 1 Saulo O. D. Luiz
Exercícios em C 1 Saulo O. D. Luiz Exercícios 1. Faça um programa em C para receber três notas e seus respectivos pesos, calcule e mostre a média ponderada dessas notas. 2 Saulo O. D. Luiz #include
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
12 - Dados Estruturados Vetores, Matrizes e Strings
12 - Dados Estruturados Vetores, Matrizes e Strings Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante Vetores,
Tabela ASCII de caracteres de controle
Caracteres Estruturas de Dados Aula 6: Cadeias de Caracteres 31/03/2010 Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
Aula 06: Condicionais (switch)
Aula 06: Condicionais (switch) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Condicionais (if - else) Exemplos
Curso de Programação C em Ambientes Linux Aula 05
Curso de Programação C em Ambientes Linux Aula 05 Centro de Engenharias da Mobilidade - UFSC Professores Gian Berkenbrock e Giovani Gracioli http://www.lisha.ufsc.br/c+language+course+resources Conteúdo
system("pause"); //Envia comando para o sistema operacional solicitando parada de execução do programa } //limitador do corpo do programa
Atividade Prática no Ambiente Dev C++ Para as nossas atividades práticas vamos utilizar o ambiente de desenvolvimento da Linguagem C, Dev C++, ele é bastante fácil de utilizar e com muitos recursos. Segue
Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.
Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Funções e estruturas básicas 1. Faça uma função que recebe a idade de uma
Lista de Exercícios II. 01. Desenvolva um programa em C que receba um valor numérico real, verifique e mostre se esse número é positivo.
Lista de Exercícios II 01. Desenvolva um programa em C que receba um valor numérico real, verifique e mostre se esse número é positivo. #include int main(int argc, char *argv[]) { /*declaração
