Aquí encontrarás los resultados y soluciones de los ejercicios de Argentina programa, lista de los Ejercicios Resueltos Gobstones, del Capítulo 1 Fundamentos. Ideal para aquellas personas que se encuentran trabadas y no pueden avanzar y desean comparar sus ejercicios
Argentina Programa – Resultados y Soluciones Gobstone – Capítulo 1: Fundamentos
4. Repetición Simple
Resultados Ejercicio 1. MoverOeste10
procedure MoverOeste10(){
Mover(Oeste)
Mover(Oeste)
Mover(Oeste)
Mover(Oeste)
Mover(Oeste)
Mover(Oeste)
Mover(Oeste)
Mover(Oeste)
Mover(Oeste)
Mover(Oeste)
}
Resultados Ejercicio 2. La computadora repite por nosotros
procedure MoverOeste10() {
repeat(10) {
Mover(Oeste)
}
}
Resultados Ejercicio 3. MoverOeste5 usando repeat
procedure MoverOeste5(){
repeat(5){
Mover(Oeste)
}
}
Resultados Ejercicio 4. No todo es repetir
procedure Poner3AlNoreste()
{
Mover(Este)
Mover(Norte)
repeat(3)
{
Poner(Negro)}
}
Resultados Ejercicio 5. También vale después
procedure PonerAzulLejos()
{
repeat(4){
Mover(Este)
}
Poner(Azul)
}
Resultados Ejercicio 6. Repitiendo varios comandos
procedure DibujarLineaNegra6()
{
repeat(6){
Poner(Negro)
Mover(Este)
}
}
Resultados Ejercicio 7. ¿Dónde está el error?
procedure LineaRoja4() {
repeat(4){
Poner(Rojo)
Mover(Norte)
}
}
Resultados Ejercicio 8. Diagonal con una bolita
procedure Diagonal4Azul()
{
repeat(4)
{
Poner(Azul)
Mover(Norte)
Mover(Este) }
}
Resultados Ejercicio 9. Diagonal «pesada»
procedure Azul21(){
repeat(21){
Poner(Azul)}
}
procedure DiagonalPesada4Azul (){
repeat (4){
Azul21()
Mover(Norte)
Mover(Este)}
}
Resultados Ejercicio 10. El caso borde
procedure LineaNegra4Este() {
repeat(3) {
Poner(Negro)
Mover(Este)
}
Poner(Negro)
}
Ejercicio 11: De lado a lado, dibujamos un cuadrado
procedure IrOeste(){
}
procedure CuadradoNegro4(){
repeat(3){
LineaNegra4Este()
Mover(Norte)
repeat(3){
Mover(Oeste)}
}
LineaNegra4Este()
}
5. Parámetros
Resultados Ejercicio 1: Pensando en subtareas
procedure DibujarLineaNegra3(){
repeat(2) {
Poner(Negro)
Mover(Este)
}
Poner(Negro)
VolverAtras()
}
program {
DibujarLineaNegra3()
}
Resultados Ejercicio 2: Dibujando un cuadrado con subtareas
procedure DibujarCuadradoNegroDeLado3(){
repeat(2)
{
DibujarLineaNegra3()
Mover(Norte)
}
DibujarLineaNegra3()
}
program {
DibujarCuadradoNegroDeLado3()
}
Resultados Ejercicio 3: Color esperanza
procedure DibujarLineaVerde3() {
repeat(2){
Poner(Verde)
Mover(Este)
}
Poner(Verde)
VolverAtras()
}
program{
DibujarLineaVerde3()
}
Resultados Ejercicio 4: Los que faltan
procedure DibujarLineaRoja3 (){
repeat(3){
Poner(Rojo)
Mover(Este)}
VolverAtras()
Mover(Oeste)
}
procedure DibujarLineaAzul3(){
repeat(3){
Poner(Azul)
Mover(Este)}
VolverAtras()
Mover(Oeste)
}
Resultados Ejercicio 5: Procedimientos con agujeritos
procedure Poner3(color) {
repeat(3) {
Poner(color)
}
}
program {
Poner3(Negro)
Poner3(Rojo)
}
Resultados Ejercicio 6: Llenando los espacios vacíos
program{
Poner3(Verde)
}
Resultados Ejercicio 7: DibujarLinea3
procedure DibujarLinea3(color)
{
repeat(2) {
Poner(color)
Mover(Este)
}
Poner(color)
VolverAtras()
}
Resultado Ejercicio 8: DibujarCuadradoDeLado3
procedure DibujarCuadradoDeLado3(color){
repeat(2){
DibujarLinea3(color)
Mover(Norte)
}
DibujarLinea3(color)
Mover(Sur)
Mover(Sur)
}
Resultados Ejercicio 9: Pasando varios parámetros
program {
DibujarLinea3(Verde, Este)
Mover(Este)
DibujarLinea3(Rojo, Norte)
Mover(Norte)
DibujarLinea3(Negro, Oeste)
Mover(Oeste)
DibujarLinea3(Azul, Sur)
}
Resultados Ejercicio 10: La ley, el orden y el BOOM
program{
DibujarLinea3(Este, Verde)
}
Resultados Ejercicio 11: Un argumento para dos parámetros
program{
DibujarLinea3 (verde)
}
Resultados Ejercicio 12: La tercera es la vencida
procedure Triada(azul, color2, color3){
Poner(azul)
Mover(Este)
Poner(color2)
Mover(Este)
Poner(color3)
}
Capitulo 6
Ejercicio 1: Entrando en calor… ¡Volviendo!
procedure Diagonal4AzulVolviendo(){
Diagonal4Azul()
repeat(4){
Mover(Oeste)
Mover(Sur)
}
}
Ejercicio 2: Una diagonal más ancha
procedure BandaDiagonal4(){
repeat(3){
Diagonal4AzulVolviendo()
Mover(Norte)
}
Mover(Sur)
Mover(Sur)
Mover(Sur)
}
Ejercicio 3: Pongamos… ¡Todo lo que queramos!
procedure PonerN(cantidad, color){
repeat(cantidad)
{
Poner(color)
}}
Ejercicio 4: Día de la Memoria
procedure DiaDeLaMemoria(){
PonerN(24, Azul)
Mover(Este)
PonerN(3, Verde)
Mover(Este)
PonerN(1976, Negro)
}
Ejercicio 5: Escribir cualquier fecha
procedure Fecha(dia, mes, anio){
PonerN(dia,Azul)
Mover(Este)
PonerN(mes,Verde)
Mover(Este)
PonerN(anio, Negro)
}
Ejercicio 6: Movamos… ¡Todo lo que queramos!
procedure MoverN(cantidad, direccion){
repeat(cantidad){
Mover(direccion)}
}
Ejercicio 7: Los números del reloj
procedure DibujarReloj(radio){
MoverN(2, Este)
PonerN(3, Rojo)
MoverN(2, Oeste)
MoverN(2, Sur)
PonerN(6, Rojo)
MoverN(2, Norte)
MoverN(2, Oeste)
PonerN(9, Rojo)
MoverN(2, Este)
MoverN(2, Norte)
PonerN(12, Rojo)
MoverN(2, Sur)
}
Ejercicio 8: Una línea heavy
procedure LineaEstePesada(peso, color, longitud){
repeat(longitud){
PonerN(peso,color)
Mover(Este)}
MoverN(longitud, Oeste)
}
Ejercicio 9: Guarda con la guarda
procedure Pone(){
PonerN(9,Rojo)
PonerN(1,Verde)
PonerN(5,Negro)
}
procedure GuardaDe5(){
repeat(4){
Pone()
Mover(Este)
}
Pone()
}
Ejercicio 10: Una guarda en L
procedure Subir(){
repeat (2){
MoverN(1,Norte)
PonerAzulejo()
}
MoverN(2,Sur)
}
procedure Derecho(){
repeat (2){
MoverN(1,Este)
PonerAzulejo()
}
MoverN(2,Oeste)
}
procedure GuardaEnL(){
Subir()
Derecho()
PonerAzulejo()
}
7. Expresiones
Ejercicio 1: Muchas formas de decir lo mismo
program {
PonerN(3+2, Negro)
}
Ejercicio 2: La suma de las partes
procedure PonerSuma(x, y){
PonerN(x+y, Rojo)
}
Ejercicio 3: ¿Qué se hace antes?
procedure ContarGente(micros, autos, bicicletas) {
PonerN(micros*40+autos*4+bicicletas*1,Verde)
}
Ejercicio 4: La carrera del salmón
procedure MoverComoSalmon(direccion) {
Mover(opuesto(direccion))
}
Ejercicio 5: Dos pasos adelante, un paso atrás
procedure CaminarDesconfiado(pasos){
MoverN(pasos div 2, Este)
}
Ejercicio 6: Poner al lado
procedure PonerAl(direccion, color){
Mover(direccion)
Poner(color)
Mover(opuesto(direccion))
}
Ejercicio 7: La línea que vuelve
procedure Linea(direccion, color, longitud) {
repeat(longitud) {
Poner(color)
Mover(direccion)
}
MoverN(longitud,(opuesto(direccion)))
}
Ejercicio 8: Dibujando una L
procedure Ele(direccion){
Linea(direccion, Azul, 3)
Linea(siguiente(direccion), Azul, 3)
}
Ejercicio 10: Siga la flecha
procedure Flecha(direccion){
Mover(siguiente(direccion))
Poner(Rojo)
Mover(opuesto(siguiente(direccion)))
Mover(direccion)
Poner(Rojo)
Mover(opuesto(direccion))
Mover(previo(direccion))
Poner(Rojo)
Mover(opuesto(previo(direccion)))
}
Ejercicio 11: Copiando bolitas
procedure CopiarVerdesEnRojas(){
PonerN(nroBolitas(Verde), Rojo)
}
Ejercicio 12: Sacando bolitas
procedure SacarTodas(color){
SacarN(nroBolitas(color), color)
}
8. Alternativa Condicional
Ejercicio 1: Sacar con miedo
procedure SacarAzulConMiedo() {
Sacar(Azul)
}
Ejercicio 2: Sacar con miedo, segundo intento
procedure SacarAzulConMiedo() {
if (hayBolitas(Azul)) {
Sacar(Azul)
}
}
Ejercicio 3: Eliminando la bolita roja
procedure SacarRojoConMiedo() {
if (hayBolitas(Rojo)) {
Sacar(Rojo)
}
}
Ejercicio 4: Un ejemplo medio rebuscado
procedure CompletarCelda(){
if(hayBolitas(Negro)){
Poner(Rojo)
Poner(Azul)
Poner(Verde)
}
}
Ejercicio 5: ¿Y sólo sirve para ver si hay bolitas?
program {
if (puedeMover(Este)){
Mover (Este)
}
}
Ejercicio 6: Un poquito de matemática
program{
if(nroBolitas(Negro) < 5){
Poner(Negro)
}
}
Ejercicio 7: Cómo decirle que no…
procedure AsegurarUnaBolitaVerde(){
if (not hayBolitas(Verde)){
Poner(Verde)
}
}
Ejercicio 8: Dos caminos distintos
procedure MoverComoSea() {
if (puedeMover(Oeste)) {
Mover(Oeste)
} else {
Mover(Norte)
}
}
Ejercicio 9: Un tablero de luces
procedure PrenderOApagarLuz(){
if(hayBolitas(Verde)){
Sacar(Verde)
Poner(Negro)
}
else{
Sacar(Negro)
Poner(Verde)
}
}
Ejercicio 1: Y esto, ¿con qué se come?
procedure MoverSegunBolitas() {
if (nroBolitas(Azul) + nroBolitas(Negro) + nroBolitas(Rojo) + nroBolitas(Verde) > 10) {
Mover(Este)
} else {
Mover(Norte)
}
}
Ejercicio 2: La importancia de nombrar las cosas
function nroBolitasTotal() {
return (nroBolitas(Azul) + nroBolitas(Negro) + nroBolitas(Rojo) + nroBolitas(Verde))
}
Ejercicio 3: MoverSegunBolitas, versión 2
procedure MoverSegunBolitas() {
if (nroBolitasTotal() > 10) {
Mover(Este)
} else {
Mover(Norte)
}
}
Ejercicio 4: todasExcepto
function todasExcepto(color){
return (nroBolitasTotal() – nroBolitas(color))
}
Ejercicio 5: Una función de otro tipo
function rojoEsDominante(){
return (nroBolitas(Rojo) > todasExcepto(Rojo))
}
Ejercicio 6: En libertad
function esLibreCostados (){
return( puedeMover(Este) && puedeMover(Oeste) )
}
Ejercicio 7: Cualquier bolita nos deja bien
function hayAlgunaBolita(){
return( hayBolitas(Azul) || hayBolitas(Verde)|| hayBolitas(Rojo) || hayBolitas(Negro))
}
Ejercicio 8: Siempre al borde…
function estoyEnUnBorde(){
return(not puedeMover(Norte) || not puedeMover(Sur) || not puedeMover(Este) || not puedeMover(Oeste))
}
Ejercicio 9: Las compañeras ideales
function hayBolitasAl(direccion, color){
Mover(direccion)
return( nroBolitas(color)>0)
}
Ejercicio 10: Lo ideal también se puede romper
function hayBolitasAl(direccion, color) {
Mover(direccion)
return (hayBolitas(color))
}
Ejercicio 11: ¿Hay bolitas lejos?
function hayBolitasLejosAl(direccion, color, distancia){
repeat(distancia){
Mover(direccion)
}
return( nroBolitas(color)>0)
}
Ejercicio 12: Estoy rodeado de viejas bolitas
function estoyRodeadoDe(color){
return (hayBolitasAl(Norte, color) && hayBolitasAl(Sur, color) && hayBolitasAl(Este, color) &&hayBolitasAl(Oeste, color))
}
Ejercicio 13: Sin límites
function hayLimite(){
return(estoyEnUnBorde() || estoyRodeadoDe(Rojo) )
}