Ferramenta automática de correção de códigos em C Elgio Schlemer Setembro de 2017

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

Download "Ferramenta automática de correção de códigos em C Elgio Schlemer Setembro de 2017"

Transcrição

1 Ferramenta automática de correção de códigos em C Elgio Schlemer Setembro de 2017 Este manual visa ensinar a como realizar um programa que possa ser testado na ferramenta automática desenvolvida pelo professor. Uma ferramenta de correção de códigos não é uma ideia inédita. Já existem muitas, algumas gratuitas. Destaco, por exemplo, o BOCA, ferramenta usada para as olimpíadas de programação da SBC. O BOCA é extremamente rigoroso, pois ele não tem preocupação alguma em ensinar a programar. Apenas se acertou ou não a resposta. Em uma olimpíada não importa como você solucionou, mas sim que a solucionou. A minha ferramenta se espelhou no BOCA, mas com enormes melhorias. Para que uma ferramenta possa avaliar se o teu programa cumpre o esperado, são necessários criar arquivos de entrada e de saída. No arquivo de entrada tem tudo que deve ser "digitado" para o programa em teste e no arquivo de saída tudo que o teu programa deve imprimir. Vamos a um exemplo bem simples, começando pela definição: "Faça um programa em C que leia da entrada padrão um valor inteiro positivo maior que 0. Este número será a quantidade de inteiros, positivos ou negativos, que devem ser digitados em seguida. Para cada número digitado imprima o somatório deste número e o fatorial deste número. Caso o número lido seja negativo então deve imprimir -1. teste001.in teste001.out teste002.in teste002.out teste003.in teste003.out Veja, a especificação está dizendo no teste001 devem ser digitados 1 inteiro. O inteiro digitado foi 4 (teste001.in) então teu programa deverá imprimir uma única linha com os valores 10 e 24 na outra (somatório de 10 e fatorial de 10) separados por um espaço em branco. Já no teste003.in são 4 inteiros a serem digitados. Ao digitar -5, o programa precisa gerar -1-1 pois fatorial e somatório de número negativo não deve ser calculado (de acordo com a definição). Após, para cada um dos outros números, gerou-se seu respectivo somatório e fatorial ( para o 5, para o 6 e assim por diante). Basicamente o que o BOCA faz é: C:\> ProgramaCompiladoASerTestado.exe < teste001.in > result.out C:\> diff teste001.out result.out O < faz com que o conteúdo de um arquivo seja enviado para o programa como se tivesse sido digitado. O que o teu programa imprime é salvo no arquivo result.out. Ao final é comparado o teu resulto.out com o teste001.out. O diff faz esta comparação. Se o teu arquivo for rigorosamente igual ao esperado, você acertou o exercício. Se for diferente, seja por um espaço em branco a mais, você errou. Se teu programa imprimir somatorio de 4 = 10 Você ERROU. Não tem choro. Não ganhou os pontos desta olimpíada. Seguir milimetricamente o que é especificado é parte do desafio. Um código em C que passaria neste teste se for usado o BOCA seria assim:

2 #include <stdio.h> int main() { int qtd, i, num, soma, fat, f; scanf("%i", &qtd); for (i = 0; i < qtd; i++) { soma = 0; fat = 1; f = 1; scanf("%i", &num); if (num < 0) { printf("-1-1\n"); else { for (f = 1; f <= num; f++) { fat = fat * f; soma = soma + f; printf("%i %i\n", soma, fat); Observe que é feito apenas o que se pede, nada mais. Também não precisa, em uma olimpíada, preocupar-se com valores inválidos de entrada (por exemplo: se digitar -1 para quantidade). Qualquer impressão extra que o programador, por ventura, tenha colocado para depurar o código precisa ser REMOVIDA antes de submeter o programa à análise do BOCA. Talvez o programador tivesse colocado algumas mensagens de "digite isso, digite aquilo" e removeu antes de postar para avaliação: #include <stdio.h> int main() { int qtd, i, num, soma, fat, f; /* Leitura da quantidade de inteiros */ // printf("digite quantidade:\n"); scanf("%i", &qtd); // printf("digite %d inteiros:\n", qtd); for (i = 0; i < qtd; i++) { soma = 0; fat = 1; f = 1; scanf("%i", &num); // printf("lido %i\n", num); /* Se negativo, imprime -1 */ if (num < 0) { printf("-1-1\n"); else { /* Se positivo, calcula somatorio e fatorial */ for (f = 1; f <= num; f++) { fat = fat * f; soma = soma + f; /* Imprime somatorio e fatorial */ // printf("somatorio de %i = %i\n", num, soma); // printf("fatorial de %i = %i\n", num, fat); printf("%i %i\n", soma, fat);

3 Mas a minha ferramenta procura ser um pouco mais tolerante. Ainda assim, não muito, pois a análise é baseada em comparação de texto. Contudo o que deve ser impresso deve ser impresso e daquela forma, senão a ferramenta sinaliza erro. Ela tolera espaços em branco a mais ou a menos, linhas a mais ou a menos. A minha ferramenta também suporta comentários. Tudo que você imprimir que começar com # será ignorado pela ferramenta. Seguindo este exemplo do fatorial, se o teu programa, em teste na minha ferramenta, tivesse impresso isso: # Digite quantidade: 1 # Digite 1 numero: # 4 # Somatorio de 4 = 10 # Fatorial de 4 = # Fim do cálculo No BOCA você erraria. Mas na minha ferramenta não. Ela irá ignorar todas as linhas que você imprimiu que começam com # e irá analisar, portanto, apenas as linhas: E por estas linhas você acertou. Cuidados que você PRECISA ter ao usar a ferramenta de correção automática: 1) Imprimir o que a definição pede EXATAMENTE como pede, sem nada a mais e nada a menos. Impressões extras que você queira para teus testes, imprima com # 2) Sempre use '\n' no final das tuas impressões. A ferramenta trata linhas. Se ela não tiver uma linha para analisar, ficará esperando pelo '\n' 3) Não use fflush. Ele não funciona com ferramentas de testes automáticos. 4) Não use acentos nas mensagens impressas. 5) Não tente fazer menus. Leia e imprima. E só (sem querer limpar a tela) 6) Use somente funções de libs padrão do C ANSI. Basicamente stdio.h e stdlib.h (nada de conio.h que sequer existe no Linux, servidor onde serão realizados os testes) Ao contrário do BOCA a minha ferramenta irá parar o teste assim que você imprimir uma linha que ele não esperava (e que, evidentemente, não seja comentário). Ele te diz qual linha foi inesperada e qual ele estava esperando. Ainda em fase de testes, foi implementado o teste dialogado. Este teste, até onde pude pesquisar, é inédito no mundo. Ele procura reproduzir a "conversa" que teve com o teu programa. O teste dialogado precisa ter, ainda, outros cuidados: só pode usar as seguintes funções para leitura de dados: scanf com parâmetros %d %i %f e %lf APENAS UM scanf por leitura. Quer ler dois inteiros, chame duas vezes o scanf fgets para ler strings lestring para ler strings (lestring é uma função melhorada para ler strings fornecida pelo professor. Se for usar é importante que não se altere o nome da função) O teste dialogado ALTERA o teu código para poder realizar acompanhamento do diálogo. Esta alteração já teve diversos bugs. Pode ser que a alteração deixe teu código com erro de compilação devido há algum bug ainda não detectado.

4 Esta ferramenta de testes é usada desde o início na disciplina de Algoritmos e Programação III, ministrada pelo professor Elgio Schlemer. Nesta disciplina o uso da ferramenta é parte da avaliação e ela é usada para levar o programa ao extremo. Por exemplo: se a definição diz que é para ordenar um vetor de inteiros e que este vetor de inteiros pode ser de até 200 mil posições, os alunos fazem mas não irão testar com muitos valores. Talvez dezenas. Mas a ferramenta pode testar com 200 mil e ainda pode impor que o ordenamento seja feito antes de X segundos (ai já seria para a disciplina de Estruturas de Dados II). É preciso deixar claro, mas bem claro, que a ferramenta não elimina a análise do professor. Uma disciplina de programação é muito mais do que uma olimpíada. O professor buscará avaliar outros critérios vistos em aula. Por exemplo: se o professor teve como pauta o uso de funções e definiu que este problema do somatório e fatorial deva ser feito usando funções e o aluno postou o código de exemplo deste documento, para a ferramenta ele acertou, pois irá gerar respostas corretas. Mas para o professor ele errou, pois não usou função. Os alunos em aula de Algoritmos III tem a ferramenta disponível para postar suas soluções de trabalhos. Mas se você não é aluno ou mesmo sendo, deseja testar a ferramenta, tenho uma para você: Você pode entrar nesta página, ler as definições de exercícios, implementar um deles e postar para testar. Não leve a mal as páginas feias, brancas, quase que um TXT puro. É o meu ponto fraco.

5 Falta documentar: TIME out de execução usado pela ferramentas limite de memória que pode ser imposta pela definição questões técnicas da ferramenta, como a proteção contra invasão do servidor

1) Operadores de auto incremento ++ e auto decremento --

1) Operadores de auto incremento ++ e auto decremento -- Aula 09 - Operadores de auto incremento e auto decremento, atribuição múltipla, atribuição na declaração, atribuição resumida e algumas regras de boa programação. 1) Operadores de auto incremento ++ e

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Linguagem C Laços de Repetição em C Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO 1 while ( ) #include #include int main() int resultado, numero; printf (

Leia mais

Introdução à Programação

Introduçã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 mais

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

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012 urso de à urso de à Universidade Federal Fluminense July 16, 2012 Indrodução urso de à O é uma linguagem de programação criada por Dennis Ritchie, em 1972 e que continua a ser muito utilizada até os dias

Leia mais

Programação Básica. Estrutura de um algoritmo

Programação Básica. Estrutura de um algoritmo Programação Básica Estrutura de um algoritmo Código-fonte Como vimos na aula anterior um algoritmo pode ser representado usando um fluxograma Um algoritmo pode também ser representado usando texto Esse

Leia mais

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br Computação Eletrônica Strings Prof: Luciano Barbosa Recapitulando: Vetores Representar uma coleção de variáveis de um mesmo tipo em uma dimensão Ex: float notas[5]; ou float notas[5] = {2.5,3.2,1.9,4.1,2.0};

Leia mais

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat)

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat) Algoritmos e Lógica de Programação 80 horas // 4 h/semana Estrutura de Repetição Aula 09 Prof. Piva Para começar... Existem situações onde não sabemos, ao certo, quantas vezes teremos que repetir a sequencia

Leia mais

LÓGICA DE PROGRAMAÇÃO. Resumo da Linguagem C. Sérgio Carlos Portari Júnior

LÓGICA DE PROGRAMAÇÃO. Resumo da Linguagem C. Sérgio Carlos Portari Júnior LÓGICA DE PROGRAMAÇÃO Resumo da Linguagem C Sérgio Carlos Portari Júnior Tipos de dados mais usados em C Inteiro int 2 bytes Real float 4 bytes Caractere char 1 byte String não existe* xxxxxxx Booleano

Leia mais

Comandos de Repetição -Laços

Comandos de Repetição -Laços Comandos de Repetição -Laços Os comandos de repetição possibilitam que um conjunto de comandos possam ser repetidos seguindo uma determinada regra ou condição. alguns comandos repetem um conjunto de instruções

Leia mais

Aula 2 Comandos de Decisão

Aula 2 Comandos de Decisão Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 2 Comandos de Decisão Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)

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

LISTA DE EXERCÍCIOS - ro. 02

LISTA DE EXERCÍCIOS - ro. 02 USP ICMC SSC SSC0100 - Introdução à Ciência da Computação I (Prática) Professor responsável: Fernando Santos Osório Semestre: 2009/1 Horário: Terça 14h20 (Turma A2) E-mail: fosorio.at. icmc.usp.br fosorio.at.

Leia mais

Algoritmos e Programação

Algoritmos 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 mais

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Algoritmos e Técnicas de Programação. Professora: Luciana Faria Algoritmos e Técnicas de Programação Professora: Luciana Faria Estrutura de Controle Múltipla: Switch...case Switch... case Atribui o valor da direita à variável da esquerda Permite que várias condições

Leia mais

Disciplina de Algoritmos e Programação

Disciplina de Algoritmos e Programação Disciplina de Algoritmos e Programação Último Conteúdo Estruturas de condição Estrutura condicional simples Utilização da estrutura de condição if com expressões lógicas simples Utilização do comando if

Leia mais

LISTA DE EXERCÍCIOS - ro. 04

LISTA DE EXERCÍCIOS - ro. 04 USP ICMC SSC SSC0100 - Introdução à Ciência da Computação I (Prática) Professor responsável: Fernando Santos Osório Semestre: 2009/1 Horário: Terça 14h20 (Turma A2) E-mail: fosorio.at. icmc.usp.br fosorio.at.

Leia mais

Programação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral

Programaçã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-1 Revisão da aula anterior Linguagens compiladas vs interpretadas Para que servem as bibliotecas? O que

Leia mais

CCO 016 / COM 110 Fundamentos de Programação

CCO 016 / COM 110 Fundamentos de Programação CCO 016 / COM 110 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 05 Entrada de dados Leia scanf Entrada dos dados Entrada de dados compreende a operação

Leia mais

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com (66) 9953-7642 AULA 02 Revisão de conteúdos da aula passada Exercícios de revisão da aula 01 Estruturas condicionais

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Linguagem C Arquivos Seqüências ou de Texto. Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO 1 Arquivo de Escrita 1 fopen ( nome.txt", "w" ); fputc ( caracter, arquivo); 2 #include

Leia mais

Linguagem C (estruturas condicionais)

Linguagem C (estruturas condicionais) Linguagem C (estruturas condicionais) André Tavares da Silva atavares@joinville.udesc.br Comandos de Controle de Fluxo Todos os comandos devem ser terminados com um ;. { e são usados para delimitar um

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 4 Estruturas de Condição Profa. Marina Gomes marinagomes@unipampa.edu.br 06/04/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje Estrutura condicional simples Utilização

Leia mais

3.1 - Funções para manipular dados de entrada e saída padrão

3.1 - Funções para manipular dados de entrada e saída padrão 1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado

Leia mais

Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante

Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 14 - Vetores Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante Vetores, Matrizes e Strings 1 14.1 Vetor Problemas

Leia mais

12 - Dados Estruturados Vetores, Matrizes e Strings

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,

Leia mais

Aula 4 Introdução ao C

Aula 4 Introdução ao C Considere o nosso MSC. O Processador Central, entende o conjunto de instruções, leia, imprima, atribuição e condicional e com ela resolvemos vários problemas, construindo vários algoritmos. As instruções

Leia mais

Estruturas de Repetição

Estruturas de Repetição Prof.: Edwar Saliba Júnior Fevereiro 2012 1 Nomenclaturas: Loopings, Laços ou Malhas de Repetição; Possibilidades de Parada: Quantidade de repetições previamente definida (melhoria na legibilidade e qualidade

Leia mais

Aula 05: Condicionais (if / else)

Aula 05: Condicionais (if / else) Aula 05: Condicionais (if / else) 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 Breve Revisão Comandos de Decisão

Leia mais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Introdução O objetivo desta aula prática é exercitar comandos de entrada e saída simples

Leia mais

Modulo 4: while do while (limites de variáveis)

Modulo 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 mais

Exercícios Repetição

Exercícios Repetição Curso de Engenharia de Controle e Automação Disciplina: Informática para a Automação Professor: Marcelo Cendron Exercícios Repetição 1.1 8.3 Exercícios 1. Faça um programa utilizando o comando while, que

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

Introdução a C. Para saber quais os procedimento ou funções que existem em cada biblioteca, acesse

Introdução a C. Para saber quais os procedimento ou funções que existem em cada biblioteca, acesse Introdução a C Formatação do codigo em C Todos os códigos em C possuem a seguinte formatação: bibliotecas variáveis globais procedimentos ou funções (se necessário) função principal E sempre são salvos

Leia mais

Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C.

Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Prof. Gemilson George E-mail: gemilson@geo.com.br Skype: gemilson_geo MSN: gemilsongeorge@gmail.com Facebook: gemilson Fone:

Leia mais

Aula 2: Introdução a Linguagem C

Aula 2: Introdução a Linguagem C Aula 2: Introdução a Linguagem C Prof. Sérgio Montazzolli Silva smsilva@uel.br 2 Sumário História Ponto de entrada de um programa (função main) Bibliotecas Blocos, encerramento de linha e identação Função

Leia mais

Subprogramas. Prof. Carlos Lopes

Subprogramas. Prof. Carlos Lopes Subprogramas Prof. Carlos Lopes Motivação Escreva um programa C capaz de calcular a combinação de n valores tomados p a p. Para realizar este cálculo, você deverá utilizar a seguinte fórmula: C n n! p

Leia mais

Comando Switch. Embora a escada if else-if possa executar testes de várias maneiras, ela não é de maneira nenhuma elegante.

Comando Switch. Embora a escada if else-if possa executar testes de várias maneiras, ela não é de maneira nenhuma elegante. Comando Switch Embora a escada if else-if possa executar testes de várias maneiras, ela não é de maneira nenhuma elegante. O código pode ficar difícil de ser seguido e confundir até mesmo o seu autor no

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II Prof. Dr. Daniel Caetano 2013-1 Material de Estudo Material Notas de Aula Apresentação Material Didático Acesso ao Material

Leia mais

Revisão. Profa Marina Gomes

Revisão. Profa Marina Gomes Revisão Profa Marina Gomes Algoritmos Na construção de um programa, o problema que o algoritmo representa é composto por três fases. Entrada: dados de entrada do algoritmo. Processamento: ações sobre os

Leia mais

Computação Informática

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

Leia mais

Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema?

Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema? Matrizes Problema: Ler as 5 notas de 7 alunos (identificados por um número entre e 6), calcular a média de cada aluno, e após imprimir as notas e médias dos alunos, classificados pela média. Quantas variáveis

Leia mais

Aula 1 Apresentação do Curso

Aula 1 Apresentação do Curso Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 1 Apresentação do Curso Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)

Leia mais

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes Computação 2 Aula 2 Vetores e Matrizes Profª. Fabiany fabianyl@utfpr.edu.br Vetores Vetor também é conhecido como variável composta homogênea unidimensional; Um vetor computacional é um variável composta

Leia mais

Linguagem C estruturas de repetição

Linguagem C estruturas de repetição Linguagem C estruturas de repetição IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C Estrutura de um programa Escrita e

Leia mais

Fundamentos de Programação1

Fundamentos de Programação1 Fundamentos de Programação1 Linguagem C Introdução e elementos principais Aula N. 01 Prof. SIMÃO Jean Marcelo SIMÃO 1 Exemplo 2 % código em Octave/Matlab clc; A = 5; A = 4 ; if ( A > B ) printf ( A é maior

Leia mais

Estruturas de Decisão. Adaptado de Deise Saccol

Estruturas de Decisão. Adaptado de Deise Saccol Estruturas de Decisão Adaptado de Deise Saccol 1 ESTRUTURAS DE DECISÃO Comandos de decisão ou desvio fazem parte das técnicas de programação, para construir estruturas de algoritmos que não são totalmente

Leia mais

Entrada de Dados na Linguagem C. Professor Adolfo Neto DAINF UTFPR Agosto de 2008

Entrada de Dados na Linguagem C. Professor Adolfo Neto DAINF UTFPR Agosto de 2008 Entrada de Dados na Linguagem C Professor Adolfo Neto DAINF UTFPR Agosto de 2008 Objetivos Ao final desta aula o aluno será capaz de escrever programas em C utilizando a função SCANF para entrada de dados.

Leia mais

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU

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

Leia mais

CCO 016 Fundamentos de Programação

CCO 016 Fundamentos de Programação CCO 016 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 09 Agregados Homogêneos Variáveis Indexadas Vetores EXEMPLO 1 Um programa deve calcular quem

Leia mais

MC-102 Aula 06 Comandos Repetitivos

MC-102 Aula 06 Comandos Repetitivos MC-102 Aula 06 Comandos Repetitivos Instituto de Computação Unicamp 2 de Setembro de 2016 Roteiro 1 Comandos Repetitivos 2 Comando while 3 Comando do-while 4 O comando for 5 Exemplos com Laços Variável

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Entrada e Saída. Mais sobre dados Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Saída

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA OUTRAS ESTRUTURAS DE REPETIÇÃO Prof. Dr. Daniel Caetano 2013-1 Objetivos Conhecer outras estruturas de repetição da linguagem C/C++ Compreender o uso de cada uma delas

Leia mais

Aula 14: Estruturas de Seleção e Controle em C

Aula 14: Estruturas de Seleção e Controle em C Aula 14: Estruturas de Seleção e Controle em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Estruturas de Seleção e Controle Programação de Computadores

Leia mais

VETORES ADAPTADO DO MATERIAL DE PROF. L. A. ALVARES

VETORES ADAPTADO DO MATERIAL DE PROF. L. A. ALVARES VETORES ADAPTADO DO MATERIAL DE PROF. L. A. ALVARES SEJA O PROBLEMA: LER 30 VALORES E CALCULAR A MÉDIA ARITMÉTICA DOS MESMOS. Pergunta-se: Quantas variáveis serão necessárias para ler os 30 valores? 30?

Leia mais

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

Programação de Computadores I Funções Básicas da Linguagem C PROFESSORA CINTIA CAETANO Programação de Computadores I Funções Básicas da Linguagem C PROFESSORA CINTIA CAETANO Função Printf() Sintaxe printf( expressão de controle, argumentos); É uma função padrão para exibir uma mensagem na

Leia mais

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 2 Condicional 1 Se 'C' é verdadeira Então?; 3 Condicional 1 Se 'C' é verdadeira Então? if (C)?; 4 Condicional 2 Se 'C' é verdadeira Então? Senão?? 5 Condicional

Leia mais

, se x = y. , se x > y

, se x = y. , se x > y Exercício 1 Seja a função definida do 2 : Aula Prática 08 f(x, y) = x 2-3x + y 2 4 2, se x < y, se x = y, se x > y Escreva um programa para gerar a tabela de valores dessa função (conforme o exemplo a

Leia mais

Universidade 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 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 mais

Disciplina de Algoritmos e Programação

Disciplina de Algoritmos e Programação Disciplina de Algoritmos e Programação Aula Passada Prática com declaração e inicialização de variáveis Capacidade de representação (estouro de representação) Tamanho ocupado pela variável na memória (comando

Leia mais

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção OPL e IC1 Prof: Anilton Joaquim da Silva Anilton.ufu@outlook.com 1 Estrutura de Seleção Até agora não aprendemos a dizer para o computador Se

Leia mais

LINGUAGEM C: ARRAY: VETORES E MATRIZES

LINGUAGEM C: ARRAY: VETORES E MATRIZES LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor

Leia mais

Treinamento Olimpíada Brasileira de Informática

Treinamento Olimpíada Brasileira de Informática Treinamento Olimpíada Brasileira de Informática Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 03 1/2 Estrutura Condicionais Linguagem de Programação C Bruno Otávio, George,

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II Prof. Dr. Daniel Caetano 2012-1 Material de Estudo Material Notas de Aula Apresentação Material Didático Acesso ao Material

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

Programação Estruturada

Programação Estruturada Programação Estruturada Estruturas condicionais Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Comandos condicionais

Leia mais

Aula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU

Aula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU Aula 9 Oficina de Programação Strings Profa. Elaine Faria UFU - 2017 String Cadeia de caracteres (ou String) É uma seqüência de letras e símbolos, na qual os símbolos podem ser espaços em branco, dígitos

Leia mais

5 Comando de Seleção Simples e Composta

5 Comando de Seleção Simples e Composta 5 Comando de Seleção Simples e Composta Ronaldo F. Hashimoto e Carlos H. Morimoto Essa aula introduz o comando de seleção, que permite ao seu programa tomar decisões sobre o fluxo do processamento, ou

Leia mais

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. e saída Biblioteca stdio.h Comandos Função scanf() Função gets() Função getchar() Material cedido pelo prof. Daniel Callegari scanf() Rotina de entrada que lê todos os tipos de dados. Protótipo: int scanf(const

Leia mais

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Disciplina 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 1 Março 2015 Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página

Leia mais

Recursão David Déharbe

Recursão David Déharbe Recursão David Déharbe 1 1 Objetivos da aula O conceito de recursão. Exemplos. Programação em C. 2 2 Roteiro da aula Revisão de funções; Motivação; Definição; Dois exemplos básicos; Recursão mútua; Dois

Leia mais

DURAÇÃO DA PROVA: 2 horas

DURAÇÃO DA PROVA: 2 horas MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 09 de abril de 2012 Nome: Assinatura: N ō USP: Turma: Instruções: Professor: 1. Não destaque as folhas deste caderno. 2.

Leia mais

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU Aula 6 Oficina de Programação Estruturas Condicionais no C Profa. Elaine Faria UFU - 2017 Estrutura Condicional Simples Algoritmo se () entao instrução fimse A instrução só será executada se

Leia mais

Unidade 2: Estruturas de Controle Parte 1 - Scanner e Estrutura IF Prof. Daniel Caetano

Unidade 2: Estruturas de Controle Parte 1 - Scanner e Estrutura IF Prof. Daniel Caetano Linguagem de Programação 1 Unidade 2: Estruturas de Controle Parte 1 - Scanner e Estrutura IF Prof. Daniel Caetano Objetivo: Apresentar a classe Scanner e as principais estruturas de controle da linguagem

Leia mais

Variáveis, Tipos de Dados e Operadores

Variáveis, Tipos de Dados e Operadores ! Variáveis, Tipos de Dados e Operadores Engenharias Informática Aplicada 2.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) VARIÁVEL VARIÁVEL É um local lógico, ligado a um endereço físico da memória

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para

Leia mais

SSC304 Introdução à Programação Para Engenharias. Variáveis Indexadas em C. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Variáveis Indexadas em C. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Variáveis Indexadas em C GE4 Bio GE4Bio Grupo de Estudos

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

Estruturas Condicionais

Estruturas Condicionais Estruturas Condicionais Lógica de Programação Prof. Kleber Rezende Considerações Iniciais Nos capítulos anteriores foram apresentados alguns conceitos básicos sobre as estruturas e comandos que são utilizados

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes marinagomes@unipampa.edu.br 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes

Leia mais

Estruturas condicionais

Estruturas condicionais Estruturas condicionais David Déharbe 1 1 Objetivos da aula Revisar os primeiros elementos de linguagem C já vistos. Condicionais simples Condicionais compostas Operadores lógicos 2 2 Objetivos da aula

Leia mais

Estrutura de Seleção Múltipla Switch

Estrutura de Seleção Múltipla Switch Estrutura de Seleção Múltipla Switch Disciplina: Algoritmos e Programação Luciano Moraes Da Luz Brum Universidade Federal do Pampa Unipampa Campus Bagé Email: lucianobrum18@gmail.com Horários de atendimento:

Leia mais

Prática 10 - Funções

Prática 10 - Funções Programação de Computadores I UFOP DECOM June 9, 2016 Prática 10 - Funções Abstract Nesta aula prática você vai aprender a definir e usar funções em um programa. Contents 1 Funções 1 1.1 Definição e chamada

Leia mais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 1 Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos

Leia mais

INF 1007 Programação II Semestre 09.2

INF 1007 Programação II Semestre 09.2 INF 1007 Programação II Semestre 09.2 Trabalho 1: Logodesafio O Logodesafio é um passatempo que exercita o conhecimento léxico dos participantes, consistindo em formar palavras a partir de um conjunto

Leia mais

Programação de Computadores II. Cap. 4 Funções

Programação de Computadores II. Cap. 4 Funções Programação de Computadores II Cap. 4 Funções Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Introdução à Programação C

Introdução à Programação C Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Recapitulando Um programa C é uma sequência de diretivas (#include e #define), declarações de funções auxiliares,

Leia mais

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira CMP1048 - Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira 1. Considere um programa em C++ que tenha duas variáveis declaradas

Leia mais

Conhecendo a Linguagem de Programação C

Conhecendo 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

Linguagem de Programação C

Linguagem de Programação C ICMC USP Linguagem de Programação C Aula: Comandos em C Prof. Dr Alneu de Andrade Lopes O comando if Se condição verdadeira (1) executa comando ou sequencia de comandos. Forma geral: if (condição) { sequência_de_comandos_1;

Leia mais

Introdução à Programação SCC-121

Introdução à Programação SCC-121 ICMC USP 1.semestre/2009 Introdução à Programação SCC-121 Comandos em C Profa. Roseli Ap. Francelin Romero O comando if if ( expressão é verdadeira ) execute comando ou bloco de comandos ; else /* se expressão

Leia mais

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná em C Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Uma matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum; Em C todas as matrizes consistem

Leia mais

Arranjos. David Déharbe

Arranjos. David Déharbe Arranjos. David Déharbe 1 1 Roteiro da aula Exercícios motivadores para arranjos; Motivação; Definição; Arranjos em C; Arranjos e ponteiros; Exemplos. 2 2 Exercícios. Escreva um programa que lê cinco números

Leia mais

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços

Leia mais

Introdução a Programação na Linguagem C.

Introdução a Programação na Linguagem C. Introdução a Programação na Linguagem C. Prof. Gemilson George E-mail: gemilson@geo.com.br Skype: gemilson_geo MSN: gemilsongeorge@gmail.com Facebook: facebook.com/gemilson Fone: (83)8880-2046 Blog: informaticageo.wordpress.com

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

Algoritmos e Programação Parte 02 Vetores e Matrizes

Algoritmos e Programação Parte 02 Vetores e Matrizes Parte 02 Vetores e Matrizes o Algoritmos e Programação Vetores Estrutura de Dados Homogênea e Estática o Unidimensional o Exemplo : Prédio com um apartamento por andar Conjunto habitacional com apenas

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.4. Estruturas de Controle 3.4.1. Comandos

Leia mais