Funcionamento do Sistema


INPUT/OUTPUT (ENTRADA/SAÍDA):

  • Em todos os problemas o input é feito pelo standard input e o output é feito pelo standard output. Portanto, os programas podem e devem usar as funções «normais» de escrita leitura, como sejam o scanf e printf (em C) ou o read/readln e write/writeln (em Pascal).
  • Os inputs/outputs devem ser exactos, isto é, os dados de entrada e saída devem ser EXACTAMENTE IGUAIS (no conteúdo, na formatação, na sequência, no respeito pelas maiúsculas e minúsculas, no espaçamento, nas mudanças de linha, etc.) aos apresentados no enunciado. A última linha do output deve incluir mudança de linha (writeln em Pascal ou \n em C).
  • O standard input pode ser pensado como uma stream equivalente a qualquer ficheiro. Portanto, quando acaba, tem um end-of-flle. Para que o seu programa, use as funções usuais de ficheiros, mas aplicadas ao standard input. Por exemplo, em C, quando o final de input é atingido, um fgets retorna NULL, um scanf retorna zero argumentos lidos e um feof(stdin) retorna true. Para simular um end-of-file se estiver a escrever via teclado, pressione Ctrl+D em Linux e Ctrl+Z em Windows.

Importante:

  • Em C, deve ter o cuidado de colocar a instrução return 0 na função int main() o que é interpretado pelo Sistema de Submissão como fim do programa).

Exemplo:

Implemente um programa que leia uma lista de N (0<=N<100) números naturais e apresente a contagem de números pares e de números ímpares.

Exemplo 1: Sendo N=5 e os 5 números dados 10, 3, 2, 112 e 75, o programa apresenta 3 e 2, correspondendo respectivamente à contagem de números pares e à contagem de números ímpares.
Entrada:
5
10
3
2
112
75
Saída:
3 2
Exemplo 2: Sendo N=6 e os 6 números dados 22, 32, 20, 112, 40 e 62, o programa apresenta 6 e 0, correspondendo respectivamente à contagem de números pares e à contagem de números ímpares.
Entrada:
6
22
32
20
112
40
62
Saída:
6 0
--------------------
Resolução em Pascal
--------------------
program cpas1;
var
        i,n,x,ct:integer;
begin
        readln(n);
        ct:=0;
        for i:=1 to n do begin
                read(x);
                if (x mod 2)=0 then ct:=ct+1;
        end;
        writeln(ct,' ',n-ct);
end.
---------------
Resolução em C
---------------
#include <stdlib.h>
#include <stdio.h>
int main()
{
	int n,i,num,par,impar;
	par=0;
	impar=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&num);
		if(num%2==0)
		{
			par++;
		}
		else
		{
			impar++;
		}
	}
	printf("%d %d\n",par,impar);
	return 0;
}
-------------------------------
Resolução em NodeJs (javascript)
-------------------------------
  var readline = require("readline");
var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
var input = []; // Array com as linhas do input
rl.on("line", function(line) {
    if (line == "") // Termina introdução quando linha vazia
        main();
    input.push(line);
}).on("close", main);
function main() {
    // Input
    var v = input[0].split(" ").map(Number);
    var a = v[0];
    var b = v[1];
    // Processamento
    var r = a / b;
    console.log(r.toFixed(2));
};
-------------------------------
Resolução em C#
-------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
      int n, i, num, par, impar;
      par = 0;
      impar = 0;
      n= Convert.ToInt32(Console.ReadLine());
      for (i = 1; i <= n; i++)
      {
        num = Convert.ToInt32(Console.ReadLine());
        if (num % 2 == 0)
        {
          par++;
        }
        else
        {
          impar++;
        }
      }
      Console.WriteLine("{0} {1}", par, impar);
    }
  }
}