algoritmo livro do manzano editora erika 2000
/*
* File: main.cpp
* Author: joao
* elaborar um programa que por meio de uma sub-rotina.
* Apresente como resultado um numero positivo mesmo que a entrada tenha sido feita por um negativo
* IFMT
* Created on 21 de Agosto de 2017, 16:16
*/
#include <cstdlib>
#include<stdio.h>
using namespace std;
int positivo(int x) {
return (x < 0) ? -x : x;
}
int main(int argc, char** argv) {
int nun;
printf("Digite um numero:");
scanf("%d", &nun);
while (nun != 0) {
printf("\nNumero[%d]\n ", positivo(nun));
printf("Digite um numero:");
scanf("%d", &nun);
}
}
Boa tarde espero que ajude.
Resolvi em linguagem C, nao estava no enunciado qual linguagem, mas da forma como esta fica simples converter para qualquer outra linguagem.
Eu fiz uma funçao que retorna um inteiro e recebe um inteiro como parametro. No corpo da funçao utilizei um operador ternario, que funciona da seguinte forma (Teste logico)?resposta se verdadeiro:resposta se falso;
Desta forma se o valor passado como parametro na funçao for negativo a funçao retorna o proprio valor com o sinal trocado, caso contrario retorna o proprio parametro x. (x<0)?-x:x;
elaborar um programa que por meio de uma sub-rotina apresente como resultado um numero positivo mesmo que a entrada tenha sido feita por um negativo
algoritmo livro do manzano editora erika 2000
Seguindo o escopo do problema, escreveremos um sub-rotina que fara as seguintes operações para nós:
-Se a entrada for negativa, passamos para positiva, para isto multiplicamos ela por -1;
-A saída da sub-rotina deve ser um número positivo, logo se a entrada for 0, adicionamos 1 para contemplar a condição.
-Se a entrada for positiva, simplesmente retornamos ela.
#include<stdio.h>
int sub_rotina_retorna_numero_sempre_positivo(int numero) {
if(numero < 0){ //Inverte o sinal quando a entrada for negativa
return numero * -1;
}
if(numero == 0){ //Adiciona 1 se a entrada for 0 para respeitar o escopo
return numero + 1;
}
//Se for positivo o retorno simplesmente
return numero;
}
int main() {
int resultado, valor_calcular;
//Atribuo um valor qualquer
printf("Informe um inteiro qualquer (Positivo ou Negativo): ");
scanf("%d", &valor_calcular);
printf("\n");
//Chama sub-rotina para fazer o calculo
resultado = sub_rotina_retorna_numero_sempre_positivo(valor_calcular);
printf("Resultado da Sub-rotina: %d", resultado);
return 0;
}
Para escrever sua resposta aqui, entre ou crie uma conta
Técnicas de Desenvolvimento de Algoritmos
Compartilhar