Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1) Faça as seguintes conversões entre bases (sem uso de calculadora):
- 1.1) Número 20 na base decimal para a base binária.
- 1.2) Número 2C na base hexadecimal para a base decimal.
- 1.3) Número 10011 na base binária para a base decimal.
- 1.4) Número 99 na base decimal para a base hexadecimal.
- 1.5) Número F3DA na base hexadecimal para a base binária.
- 1.6) Número 110011 na base binária para a base octal.
- 2) Dada a seguinte hierarquia de classes abaixo escritas em linguagem c++:
- class Entity {
- public:
- float x;
- float y;
- virual void Spawn() = 0; // método virtual puro (método abstrato)
- virtual void SayHello() = 0; // método virtual puro (método abstrato)
- void MoveTo(float x, float y) {
- this->x = x;
- this->y = y;
- }
- };
- class Player: public Entity {
- public:
- int team;
- void Spawn() {
- x = 10;
- y = 10;
- team = 0;
- }
- };
- class Human: public Player {
- public:
- void Spawn() {
- Player::Spawn(); // chama o método Spawn da classe pai Player
- team = 3;
- }
- void SayHello() {
- printf("[%d][%f, %f] Eu quero frag!", team, x, y);
- }
- };
- class Zombie: public Player {
- public:
- void Spawn() {
- Player::Spawn(); // chama o método Spawn da classe pai Player
- team = 2;
- }
- void SayHello() {
- printf("[%d][%f, %f] Hoioi uihihi iohuhu huhoi hooooooo!", team, x, y);
- }
- };
- E dada o seguinte código abaixo:
- Entity *entity;
- for (int i = 0; i < 10; i++) {
- int team;
- scanf("%d", team);
- switch (team) {
- case 2:
- entity = new Zombie;
- break;
- case 3:
- entity = new Human;
- break;
- default:
- prinf("Time inválido!");
- return;
- }
- entity->Spawn();
- entity->MoveTo(40, 80);
- entity->SayHello();
- }
- Se for entrado os seguintes valores:
- 2
- 2
- 3
- 3
- 2
- 3
- 3
- 2
- 2
- 3
- Diga (sem a ajuda de um computador, compilador, interpretador ou qualquer outro tipo de ferramenta assistida) qual seria a saída desse código. Depois verifique com a ajuda de um programa em c++ (usando o compilador/editor/IDE de sua preferência) se sua resposta bate com a do programa.
- 3) Usando uma das seguintes linguagens:
- C
- C++
- C#
- Java
- Pascal
- Object Pascal (Delphi)
- Faça um programa que leia um número decimal e converta esse número para uma string que represente este número nas bases binária, octal e hexadecimal. Faça isso sem a ajuda de qualquer API de sua linguagem preferida que realize conversões entre bases!
- 4) Dado o seguinte algoritmo abaixo em c++ para o cálculo de distância entre dois pontos:
- #include <stdio.h> // Include necessária para o uso das APIs de entrada e saída scanf e printf
- #include <math.h> // Include necessária para o uso da função de raiz quadrada sqrt
- int main () {
- int x1;
- int y1;
- int x2;
- int y2;
- printf("Digite as coordenadas (x1, y1)");
- scanf("%d", x1);
- scanf("%d", y1);
- printf("Digite as coordenadas (x2, y2)");
- scanf("%d", x2);
- scanf("%d", y2);
- int dx = x2 - x1;
- int dy = y2 - y1;
- int dx2 = dx * dx;
- int dy2 = dy * dy;
- int sum = dx2 + dy2;
- float distance = sqrt(sum);
- printf("A distância entre (%d, %d) e (%d, %d) é %f", x1, y1, x2, y2, distance);
- return 0;
- }
- 4.1) Verifique qual a saída dele para as seguintes entradas:
- 4.1.1) x1=0 y1=0 x2=3 y2=4
- 4.1.2) x1=-1 y1=-3 x2=6 y2=15
- 4.1.3) x1=100 y1=150 x2=47000 y2=-49000
- 4.2) A saída para o item 4.1.3 realmente bate com a distância verdadeira entre aquelas coordenadas? Se não, o que deveria ser feito no algoritmo para que ele funcionasse adequadamente para aqueles valores?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement