terça-feira, 23 de junho de 2015

OBI 1ª FASE EM RIO VERDE CPMG

Muita gente precisa apenas de um incentivo para começar a programar, e sem sombra de dúvidas esse empurrãozinho é extremamente importante para que mais pessoas conheçam a ciência da computação, e contribua para tornar a vida de todos melhor.
É isso que a Olimpíada Brasileira de Informática busca promover com projetos como o que é realizado pelo Instituto Federal Goiano juntamente com as escolas públicas de Rio Verde.
Estamos na primeira fase do nosso projeto de extensão, que tenta levar a Olimpíada Brasileira de Informática às escolas públicas de Rio Verde, e já conseguimos o apoio do colégio da Policia Militar Carlos Cunha Filho, que afinal foi de crucial importância para o grande sucesso da olimpíada na escola.
A primeira fase já foi concluída e agora estamos caminhando para a segunda, selecionamos  os alunos pelo nível de acertos e já conseguimos encontrar alguns talentos entre a concorrida disputa interna do colégio, alguns conseguiram acertar 96% da prova, nível muito bom para uma primeira vez.
Agradecemos muito ao carinho que recebemos de toda equipe do colégio. Agora é hora de começar a treinar para a segunda fase e expandir o projeto para outras escolas.
        

sexta-feira, 19 de junho de 2015

OBI 1ª FASE EM RIO VERDE


A cada dia aprender a jogar com as palavras e transforma-las em funções computacionais incentiva e desperta em várias pessoas o interesse pela programação no mundo todo. Assim como todo jogo muitos apreendem a jogar, no começo é difícil, e para prosseguir jogando é necessário treinar para que a mente esteja ligada e conectada com o incrível jogo da programação. A OBI (Olimpíada Brasileira de Informática) ocorre em etapas no Brasil inteiro, e sedia junto a diversas instituições de ensino. O trabalho e motivação dos organizadores e professores foi fantástico, eles conseguiram nos guiar nas inscrições e nos preparar para prova, nós jovens entramos na sala e ficamos de frente a uma das coisas que mais brilham no escuro, a tela do computador, não estava escuro, mas ali sentimos toda a dedicação do trabalho e começamos a fazer a prova da OBI. Estamos aguardando ansiosos pelo resultado da primeira etapa !!!

Aluno do 1º período de informática: LUCAS RIBEIRO DA SILVA XAVIER

sexta-feira, 6 de março de 2015

Inicio das atividades do primeiro semestre de 2015.

Estamos iniciando mais um semestre com o projeto IFGoiano - Câmpus Rio Verde na OBI. A primeira atividade do semestre foi uma atividade cultura onde o curso técnico em informática do IFGoiano foi assistir o filme "Jogo da Imitação", filme que fala sobre a vida de Alan Turing considerado o pai da ciência da computação.


Saída do cinema depois de ver o filme "Jogo da Imitação".

Outro evento importante foi o inicio das atividades do projeto IFGoiano - Câmpus Rio Verde financiado pelo CNQq. Esse projeto foi contemplando com 6 bolsas ADC-B e mais cinco mil reais para ser gasto com material de custeio e viagem para os alunos do projeto.
Da esquerda para a direta temos: Prof. André, Prof. Caike, Bolsista Renato, Bolsista Gabriel Campos, Bolsista Gabriel Medeiros e o Bolsista Matheus Freitas.
Fazem parte do projeto os professores: Adriano Soares de Oliveira Bailão, André da Cunha Ribeiro, Caíke da Rocha Damke, Carina Calixto Ribeiro de Araujo, Heyde Francielle do Carmo França, Leonel Diógenes Carvalhaes Alvarenga, Márcio da Silva Vilela e Rafael Carvalho de Mendonça e os alunos bolsistas : Gabriel Campos de Moura, Gabriel Medeiros Alves, João Pedro da Silva Fernandes, Lucas Ribeiro da Silva Xavier, Matheus Freitas Mury e Renato Alves de Melo. Também temos a participação do aluno do 1 período noturno do curso técnico em informática Giovani Marcos Cavalli. Já fazem parte do projetos os alunos: Athos José de Araújo e Fernando Henrique Farias Marques.

A primeira fase da OBI será no dia 29/05/2015, bons estudos a todos.

sexta-feira, 12 de dezembro de 2014

End Of File (EOF)

End Of File (EOF)

   Hoje irei falar sobre o End Of File (EOF) conhecido como Final de Arquivo. O EOF pode ser utilizado em um programa quando você for fazer um programa que leia um arquivo de texto com um número indeterminado de linha.
   Para fazermos o teste usaremos o terminal do Linux e a IDE de trabalho CodeBlocks.

   O processamento utilizado sera um processamento qualquer, que no caso faz a inversão de cada linha, lembrado é um processamento qual quer ele não se restringe só neste que irei mostrar.
faça o seguinte código:

void limparBuffer(void){
   char c;
   while ((c=getchar())!='\n'&& c!=EOF);
}

int main(){
   char str[tam];
   int c,i;
   while(scanf("%[^\n]",str)!=EOF){
      c=strlen(str);
      for(i=c;i>=0;i--){
         printf("%c",str[i]);
      }
       printf("\n");
      limparBuffer();
}

   Como já foi dito em um Post anterior, nós usaremos a função de Limpeza de Buffer para limpar o buffer e não atrapalhar na leitura do nosso arquivo, o EOF aparece tanto na função quanto no código. Na função ele aparece para limpa caractere por caractere ate que seja encontrado o Enter ou ate que seja encontrado o EOF que é o nosso caso. Já no código ele é usado para ler varias linhas de um arquivo ate que acabe, quando acabar ele retorna o EOF que consecutivamente para o programa ali.

   Agora faremos um arquivo de texto de preferencia .txt com o nome de in.txt (de input) que recebera o algumas linhas. Este arquivo tem que ficar dentro da pasta raiz do programa para ser executado com maior facilidade.

Andre
Athos
Fernando
Leticia

   Agora iremos executar o programa, para executar no terminal faça o seguinte. Aperte Ctrl+F9 no CodeBlocks para somente compilar o programa, olhe no build log para saber se houve algum erro, caso não tenha vá para a pasta onde o código fonte do programa esta pelo terminal e faça o seguinte código: “./nome_do_programa < in.txt”, caso não tenha usado a função de limpeza de buffer ele entrara em loop pois ira ler somente a primeira linha infinitamente e não encontra o EOF para poder para, dando algo parecido com isso:

erdnA
erdnA
erdnA
erdnA
erdnA
erdnA
...

Caso tenha dado certo o resultado deve ser parecido com esse:

erdnA
sohtA
odnanreF
aiciteL


 Bom pessoal espero que tenha gostado e ate mais.

quinta-feira, 4 de dezembro de 2014

Limpando a “sujeirinha” do teclado “Limpeza de Buffer”

Ei, você! Sabe pra quê serve uma Limpeza de Buffer?
Não?? Então se liga nessa dica ...
Suponhamos que existam 3 funções, uma após a outra e ao tentar ler o caractere na segunda função, o programa simplesmente colocar o enter (\n) e já “pula” para a terceira(no nosso caso não haverá a leitura terceira). A limpeza de buffer serve para evitar este tipo de problema.
Um exemplo de quando é necessário limpar:

int main()
{
    char a;
    int b;
    printf("Informe caractere: ");
    a = getchar();
    printf("Informe numero: ");
    b = getchar();
    printf("%d",a);
    printf("%d",b);
    return 0;
}

Mas como limpar o buffer?
Cria-se uma função na qual chamaremos "limparBuffer", para isso criaremos vamos definir uma variável do tipo char e logo após faremos um ciclo while. Exemplo:

void limparBuffer(){
   char c;
   while ((c = getchar()) != “\n” && c != EOF);
}
O que esses comandos fazem é ir "pegando" os elementos do buffer, até que o caractere '\n' apareça, ou o EOF(end of file)Em outras palavras, enquanto c for diferente de quebra de linha ou c for diferente de EOF o ciclo vai continuar a execução.
Agora é só chamar a função apos cada leitura. Exemplo:

void limparBuffer()
{
   char c;
   while ((c = getchar()) != “\n” && c != EOF);
}
int main()
{
    char a;
    int b;
    printf("Informe caractere: ");
    a = getchar();
    limparBuffer();
    printf("Informe numero: ");
    b = getchar();
    limparBuffer();
    printf("%d",a);
    printf("%d",b);
    return 0;
}

Agora um método simples, utilizando o próprio scanf() é o seguinte:

scanf(" %d", &b); //repare no espaço entre o " e o %.

ou ainda:

scanf("\n%d", &b); //agora o "\n"

Simples não é? Isso já é o suficiente pra limpar o buffer.

Aproveitem!!!

sexta-feira, 21 de novembro de 2014

Espaço das profissões no IF Goiano – Câmpus Rio Verde


O espaço das profissões foi um projeto da professora Heyde que juntamente com os alunos do instituto procurou levar informações dos cursos do instituto federal para toda a comunidade Rio-verdense. O espaço das profissões ocorreu durante o dia todo nos dias 22 e 23 de outubro e como não podia faltar, os alunos do projeto da Olimpíada Brasileira de Informática estavam mostrando para toda a comunidade como funciona a OBI e como é prazeroso participar dessa competição, que tem como objetivo principal encontrar novos talentos em programação de computadores, sendo a programação a principal habilidade dos cursos relacionados a informática.


sexta-feira, 31 de outubro de 2014

Code.org - Programação para iniciantes

Algum tempo atrás estava navegando pela internet e me deparei com este site: http://learn.code.org/, achei bastante interessante e resolvi explorá-lo. Logo que comecei a frequentar o site já resolvi vários exercícios do mesmo. No site existem vários jogos, onde você muda de fase e a cada nível descobre novas ferramentas da programação, como por exemplo: ler, repetir, executar, se, senão, entre outras. No total são 20 desafios divididos em 20 fases cada, onde utilizam os personagens de desenhos animados (angry birds, plants versus zumbi, etc).
O Code.org transmite o conteúdo básico de lógica de programação com exercícios viciantes que ensinam da melhor forma possível. Recomendo a utilização do site principalmente para crianças e adolescentes do ensino fundamental que são iniciantes em programação.





“There are only 10 types of people in the world: Those who understand binary and those who don’t.”

sexta-feira, 24 de outubro de 2014

Biblioteca string.h

Biblioteca <string.h>
Como utilizar as principais funções
        A biblioteca string.h foi feita para facilitar o manuseio de string, tendo como suas principais funções a:
·       strlen (a função strlen, retorna um inteiro com dizendo quantos caracteres tem na string).
·        strcpy (a função strcpy copia uma string para outra string).
·        strcmp (esta função compara 2 string e retorna um inteiro. Se este inteiro for 0 quer dizer que as strings são iguais, se for negativo é porque a primeira e maior que a segunda e se for positivo é porque a segunda é maior que a primeira).
·         strcat (a strcat concatena 2 strings).

Como usá las
Para que as seguintes funções funcione  adicione a biblioteca string.h
#include <string.h>”.

        Strlen
Para usarmos a strlen faça a seguinte função:

int i;
char str[tam];
scanf(" %[^\n]",str);
i=strlen(str);
printf("%i\n",i);

pronto. A variável “i” recebera o número de caracteres que tem a sua string só que o próximo código ira fazer isso e é bem fácil de eu entender.

int i;
char str[tam];
scanf(" %[^\n]",str);
for(i=0;i<tam;i++){
   if(str[i]=='\0') break;
}
printf("%i",i);

este é uma código eficiente que simula a strlen.

Strcpy
Para poder usar a strcpy faça o seguinte:

char str1[tam],str2[tam];
scanf(“ %[^\n]",str1);
strcpy(str2,str1);
printf("%s\n",str2);

Veja que lemos a “str1” mas imprimimos a “str2”, isso porque a “str1” foi jogada na “str2”. Agora vamos reproduzir um código que faça algo parecido.

int i;
char str1[tam],str2[tam];
scanf(" %[^\n]",str1);
for(i=0;i<tam;i++){
str2[i]=str1[i];
}
printf("%s\n",str2);

Este código também faz o mesmo processo que a strcpy só que tera que ter uma lógica melhor para compreende-lo.

Strcmp
Para usarmos a strcmp faça:

int i;
char str1[tam],str2[tam];
scanf(“ % [^\n]",str1);
scanf(“  %[^\n]",str2);
i=strcmp(str1,str2);
if(i==0){
printf(“São iguais\n”);
}else(i!=0){
printf(“Não são iguais\n”);
}

Por mais que isso seja só um pouco do que a strcmp possa fazer, esse será o seu principal uso. Mas vamos fazer um código que simule isso.

int i,j;
int o=0,c=0;
char str1[tam],str2[tam];
scanf(" %[^\n]",str1);
scanf(" %[^\n]",str2);
for(i=0;str1[i]!='\0';i++){
c++;
}
for(j=0;str1[j]!='\0';j++){
o++;
}
if(o==c){
printf("São iguais\n");
}else if(o!=c){
printf("Não são iguais\n");
}

Observe que temos dois for para contar quantos caracteres tem na em cada string e depois comparamos ela, caso seja igual ele retornara “São iguais”, caso não ele retornara “Não são iguais”.

Strcat
E por ultimo usaremos a strcat para concatenarmos duas strings. Vamos usar da seguinte forma:

int i; char str1[tam],str2[tam]; scanf(" %s",str1); scanf(" %s",str2); strcat(str1," "); strcat(str1,str2); printf("%s\n",str1);

Observe que o código ficou bem simples mas o que faremos a seguir pode ter uma lógica mais difícil de compreender mas que pode ser mais eficiente que o código anterior.

int i,j;
char str1[tam],str2[tam],str3[tam+tam];
scanf(" %[^\n]",str1);
scanf(" %[^\n]",str2);
for(i=0;str1[i]!='\0';i++){
str3[i]=str1[i];
}
str3[i]=' ';
i++;
for(j=0;str2[j]!='\0';j++){
str3[i]=str2[j];
i++;
}
str3[i]='\0';
printf("%s\n",str3);

bem podemos ver que neste caso criamos a string “str3” para mantermos a integridade do valor da “str1 e str2”, lembrando que a cada string a mais a ser concatenada temos que aumentar o espaço da string que recebera as strings.

Bem pessoal ficamos por aqui com esta dica e até mais.
Lembre se “Os sonhadores são os salvadores do mundo” - James Allen.

sexta-feira, 3 de outubro de 2014

Strings sem dor de cabeça

Strings na linguagem C

Para entendermos como funciona uma string de caracteres, na linguagem c, é muito importante compreender como os caracteres são representados pelo computador, como a linguagem c é uma linguagem compilada e não interpretada temos que trabalhar com strings pensando na forma que o computador C a interpreta. A linguagem C considera os caracteres como números que vão de 0 até 127, enumerados segundo a tabela ASCII, assim:

char exemplo = 61;
printf("61 em C é : %c\n",exemplo );

O programa mostraria : 61 em C é igual a : a

Talvez você quererá atribuir números a um elemento char, então existe 2 formas de fazer isso:

    char exemplo = '1';   OU char exemplo = 31;

em ambos os casos mostram o valor 1.

Mais com o aumento dos nosso programas trabalhar com caracteres únicos tornar-se inviável, então podemos criar um vetor de caracteres denominados strings que nada mais é que um espaço de memoria que contem vários caracteres em fila, como por exemplo:

Athos                                      André                   peixe                     Cachorro

Então se pensarmos um pouco veremos que string nada mais é do que caracteres agrupados e que termina com o caractere  '\0', indicando o final da string. No exemplo abaixo declararmos uma string de 10 caracteres + um caractere terminador '\0', pois o primeiro índice inicia em 0.

char string[10];

No segundo exemplo o compilador sobrescreve o U pois o terminador '\0' é sempre colocado.

#include <stdio.h>

int main () {

char string[1]="EU";

printf("%s\n",string);

return 0;
}

Uma string possui índices e é com esse índices que iremos trabalhar: como por exemplo o meu nome.

0-F
1-e
2-r
3-n
           4-a           
5-n
6-d
7-o
  8-'\0'

Então se quisermos ler uma string temos que fazer o seguinte:

char string[ //defina o tamanho aqui];

int i;

while(i<//tamanho da string){
scanf(" %[^ \n]",string[i] );
}

Mais se quisermos ler varias strings  temos que criar uma matriz de caractere, e para isso precisamos de de dois índices, onde o primeiro representa a linha e o segundo representa a coluna:

                                                                          0123456789
0 fernando'\0'
1       athos'\0'
2       andré'\0'
3    leticia '\0' 

Como exemplo podemos fazer o seguinte:

int i,j;
char string [//aqui vc coloca o numero de palavras que sua matriz tem ] [// aqui vai o maior numero de carceres que vai na string];

for(i=0;i<linhas;i++){ scanf("%[^\n]",string[i]); // %[^\n] lê a string até que se aperte a tecla enter }

bons estudos!

sexta-feira, 19 de setembro de 2014

Plataforma de Estudo para a OBI

Para aquele que procura um site de estudos para a OBI, recomendo o URI Online Judge, nele você encontrará vários problemas pelo qual deve ser respondido em "C" ou "Java".
O URI ajuda tanto iniciantes quanto os mais avançados além de criar uma leve competição com amigos e outras pessoas, por meio de Rank ou a porcentagem de quantos problemas resolvidos.
Já aqueles que não conhece uma linguagem de programação e quer aprende de maneira fácil, há vários canais que ensinam a programar, um dos canais é o eXcript  que não é tão conhecido mas que ensinas várias linguagens de programação, dentre elas o "C" e o "Java".
Bom, agora é só estudar para participar da próxima OBI.

Bons Estudos!

sábado, 13 de setembro de 2014

Segunda Fase OBI - 2014 em Rio Verde - GO

O Instituto Federal Goiano – Câmpus Rio Verde, sediou no dia 30 de agosto a segunda fase da XVI Olimpíada Brasileira de Informática (OBI 2014). Em Rio Verde, cinco instituições de ensino qualificaram alunos para a competição. A prova teve duração de 2 horas, não havendo qualquer tipo de imprevisto. O Professor responsável, André da Cunha Ribeiro, juntamente com seus colaboradores, Athos José de Araújo e Letícia Caroline Sousa Santos, aplicaram a prova e fiscalizaram a mesma para que tudo ocorresse dentro das orientações da OBI.



"Grandes obras são executadas não pela força mas pela perseverança"  Samuel Johnson.