Notas
Bitácora - Fundamentos de Programación - Eric Soto Cofré - Inacap
Conteúdo das notas (16)
Página 1
Alumno: Eric Alexander Andrés Soto Cofré
Primer año de Ingeniería en Informática / Inacap
Clase: Fundamentos de Programación
País: Chile

El aprendizaje comienza con aprender la lógica, a través de POLYA y los datos de entrada, proceso y salida
Luego de aprender y aplicar la resolución de problemas a través de POLYA, pasamos a utilizar la lógica en Pseint, programa el cual trabaja con pseudocódigo. Con esta aplicación tuvimos que aplicar la lógica que anteriormente aplicamos, además de aprender las diferentes variables y estructura de sus diferentes usos, como lo serían palabras como si, para, mientras, repetir, según, escribir y leer, las cuales se usar para diferentes situaciones que se nos pueden presentar a la hora de "programar". Esto es con lo que más trabajamos durante varios meses hasta Junio, mes en el cual empezamos con los "arreglos" y "dimensiones" los cuales veremos a continuación.
Página 2
Problemas resueltos con POLYA:

Página 3
Página 4
Empezamos el trabajo en equipos(5 en total), cada uno teniendo un tema dentro del pseudocódigo, en el que tienen que volverse expertos. (Junio)
En mi caso fue Estructura de Decisión. Primera actividad: Un reloj funcional que marque las horas, minutos y segundos, el código que hice fue:
Proceso reloj
definir horas, minutos, segundos Como Real
horas=0
minutos=0
segundos=0
mientras verdadero hacer
si horas<10 Entonces
escribir "0" Sin Saltar
FinSi
escribir horas,":" Sin Saltar
si minutos <10 Entonces
escribir "0" Sin Saltar
FinSi
escribir minutos,":" Sin Saltar
si segundos <10 Entonces
escribir "0" Sin Saltar
FinSi
escribir segundos
segundos=segundos+1
si segundos = 60 Entonces
minutos=minutos+1
segundos=0
FinSi
si minutos = 60 Entonces
horas=horas+1
minutos=0
FinSi
si horas=24 Entonces
horas=0
FinSi
esperar 1 segundos
Borrar Pantalla
FinMientras
FinProceso
Segunda actividad: Creación de un vídeo grupal, explicando cada uno la sintaxis de su tema(while, for, if, repeat, variables)
https://www.youtube.com/watch?v=CJLXi5Kbquk
Tercera actividad: Creación de Entorno Personal de Aprendizaje (Bitácora)
Página 5
Actividad 4: Resolución de problemas algorítmicos en Pseudocódigo:
El trabajo contempla lo siguiente:
Revisión de los enunciados de cada problema en el documento que se adjunta.
Cada alumno debe desarrollar las soluciones en Pseudocódigo.
La solución debe ser guardada en su bitácora personal en la aplicación GOCONQR.
Cada alumno debe subir en su plataforma de alumno INACAP las soluciones desarrolladas por cada enunciado, en el formato que estime conveniente (no se permite Diagrama de Flujo).
Las soluciones serán revisadas y no se permiten copias, si bien están en grupos y pueden trabajar como tal,pero las soluciones con únicas.
Ejercicio 1:
Algoritmo Palindromas
definir palabra,respuesta,inversion,palabras como caracter;
palabra<-'';
respuesta<-'';
Repetir
Escribir 'Ingrese la palabra que quiere invertir: ';
leer palabra;
palabra<-Minusculas(palabra);
para a<- 1 hasta longitud(palabra) con paso 1 Hacer
si subcadena(palabra,a,a) !=' ' entonces
palabras<-palabras + Subcadena(palabra,a,a);
FinSi
FinPara
para i<-Longitud(palabras) hasta 0 con paso -1 Hacer
inversion<- inversion + subcadena(palabras,i,i);
FinPara
si inversion = palabras Entonces
Escribir 'La palabra ingresada es palindroma';
SiNo
Escribir 'La palabra ingresada no es palindroma';
FinSi
Escribir 'Palabra ingresada: ',palabras;
Escribir 'Palabra invertida: ',inversion;
Repetir
Escribir '¿Desea escribir otra palabra? (si/no)';
leer respuesta;
respuesta<-Minusculas(respuesta);
Hasta Que respuesta='si' o respuesta='no'
palabra<-'';
palabras<-'';
inversion<-'';
Hasta Que respuesta='no';
FinAlgoritmo
Página 6
Ejercicio 2:
Proceso Caledad
definir fechaact, fechanac, lapsoact,lapsonac,mesact,mesnac,respuesta como caracter;
Definir i,edad como entero;
periodoA<-'';
periodoN<-'';
mesact<-'';
mesnac<-'';
respuesta<-'';
Repetir
escribir 'Ingrese la fecha actual(dd/mm/aaaa): ';
leer fechaact;
Escribir 'Ingrese su fecha de nacimiento (dd/mm/aaaa): ';
leer fechanac;
Para i<-7 Hasta Longitud(fechaact) Con Paso 1 Hacer
lapsoact<-lapsoact+Subcadena(fechaact,i,i);
FinPara
Para i<-7 Hasta Longitud(fechanac) Hacer
lapsonac<-lapsonac+Subcadena(fechanac,i,i);
FinPara
Para i<-4 Hasta 5 Hacer
mesact<-mesact+Subcadena(fechaact,i,i);
FinPara
para i<-4 hasta 5 hacer
mesnac<-mesnac+subcadena(fechanac,i,i);
FinPara
edad<-ConvertirANumero(lapsoact)-ConvertirANumero(lapsonac);
Si mesact<mesnac Entonces
edad<-edad-1;
FinSi
escribir 'Su edad es: ', edad," años";
Repetir
Escribir '¿Desea calcular otra edad? (si/no)';
leer respuesta;
Hasta Que respuesta='si' o respuesta='no'
lapsoact<-'';
lapsonac<-'';
mesact<-'';
mesnac<-'';
Hasta Que respuesta='no'
FinProceso
Página 7
Ejercicio 3:
Proceso Desglosamiento_dinero
definir monto,B20,B10,B5,B1,M500,M100,M50,M10,M5 como entero;
definir respuesta como caracter;
Repetir
Repetir
Escribir 'Ingrese el monto a desglosar: ';
leer monto;
Hasta Que monto>1
B20<- trunc(monto/20000);
Escribir 'La cantidad de billetes de $20000 es de: ',B20;
monto<-monto-(B20*20000);
B10<- trunc(monto/10000);
Escribir 'La cantidad de billetes de $10000 es de: ',B10;
monto<-monto-(B10*10000);
B5<- trunc(monto/5000);
Escribir 'La cantidad de billetes de $5000 es de: ',B5;
monto<-monto-(B5*5000);
B1<- trunc(monto/1000);
Escribir 'La cantidad de billetes de $1000 es de: ',B1;
monto<-monto-(B1*1000);
M500<- trunc(monto/500);
Escribir 'La cantidad de monedas de $500 es de: ',M500;
monto<-monto-(M500*500);
M100<- trunc(monto/100);
Escribir 'La cantidad de monedas de $100 es de: ',M100;
monto<-monto-(M100*100);
M50<- trunc(monto/50);
Escribir 'La cantidad de monedas de $50 es de: ',M50;
monto<-monto-(M50*50);
M10<- trunc(monto/10);
Escribir 'La cantidad de monedas de $10 es de: ',M10;
monto<-monto-(M10*10);
M5<- trunc(monto/5);
Escribir 'La cantidad de monedas de $5 es de: ',M5;
monto<-monto-(M5*5);
Repetir
Escribir '¿Quiere ingresar otro monto? (si/no)';
leer respuesta;
Hasta Que respuesta='si' o respuesta='no'
Hasta Que respuesta='no'
FinProceso
Página 8
Ejercicio 4:
Algoritmo leertexto
definir textos, respuesta Como Caracter;
Definir n,L Como Entero;
definir v como logico;
n<-1;
v<-falso;
Repetir
Escribir 'Ingrese un texto: ';
leer textos;
L=longitud(textos);
si subcadena(textos,L,L)='.' entonces
v<-verdadero;
FinSi
Hasta Que v=verdadero
para i<-1 hasta Longitud(textos) Hacer
Si Subcadena(textos,i,i)=' ' Entonces
n<-n+1;
FinSi
FinPara
Escribir n;
Escribir "¿Desea continuar con otro texto? "
leer respuesta
si respuesta="si" entonces
Repetir
Escribir 'Ingrese un texto: ';
leer textos;
L=longitud(textos);
si subcadena(textos,L,L)='.' entonces
v<-verdadero;
FinSi
Hasta Que v=verdadero
para i<-1 hasta Longitud(textos) Hacer
Si Subcadena(textos,i,i)=' ' Entonces
n<-n+1;
FinSi
FinPara
Escribir n;
Escribir "¿Desea continuar con otro texto? "
leer respuesta
FinSi
FinAlgoritmo
Página 9
Ejercicio 5:
Proceso pascal
definir n,n1 Como Entero
leer n
para i=0 hasta n-1 con paso 1 Hacer
n1=1
Para j=0 hasta i con paso 1 Hacer
Escribir n1 Sin Saltar
n1=n1*(i-j)/(j+1)
FinPara
Escribir " "
FinPara
FinProceso
Página 10
Ejercicio 6:
Algoritmo EnterosaRomanos
Definir Numero1 como entero
Definir SePuedeConvertir como logico
Escribir "Ingrese un número entre 1 y 1000"
Leer Numero1
SePuedeConvertir<-Verdadero
Si Numero1=0 Entonces
Escribir "No existe ningún símbolo para representar el 0"
SePuedeConvertir<-Falso
FinSi
Si Numero1<>trunc(numero1) Entonces
Escribir "El número debe ser entero"
SePuedeConvertir<-Falso
FinSi
Si Numero1>1000 Entonces
Escribir "Muy alto"
SePuedeConvertir<-Falso
FinSi
Si Numero1<0 Entonces
Escribir "Debe ser positivo"
SePuedeConvertir<-Falso
FinSi
Si SePuedeConvertir Entonces
Si Numero1=1000 Entonces
Escribir "M"
Sino
Dimension nu[10], nd[10], nc[10]
nu[1]<-''; nu[2]<-'I'; nu[3]<-'II'; nu[4]<-'III'; nu[5]<-'IV'; nu[6]<-'V'; nu[7]<-'VI'; nu[8]<-'VII'; nu[9]<-'VIII'; nu[10]<-'IX'
nd[1]<-''; nd[2]<-'X'; nd[3]<-'XX'; nd[4]<-'XXX'; nd[5]<-'XL'; nd[6]<-'L'; nd[7]<-'LX'; nd[8]<-'LXX'; nd[9]<-'LXXX'; nd[10]<-'XC'
nc[1]<-''; nc[2]<-'C'; nc[3]<-'CC'; nc[4]<-'CCC'; nc[5]<-'CD'; nc[6]<-'D'; nc[7]<-'DC'; nc[8]<-'DCC'; nc[9]<-'DCCC'; nc[10]<-'CM'
centenas<-trunc(Numero1/100) MOD 10
decenas<-trunc(Numero1/10) MOD 10
unidades<-Numero1 MOD 10
Escribir nc[centenas+1],nd[decenas+1],nu[unidades+1]
FinSi
FinSi
FinAlgoritmo
Página 11
Actividad 5: Creación de vídeo - Presentación Algoritmo Licencias Médicas:
Objetivo(s) del trabajo
1. Explicar la lógica en PSEUDOCÓDIGO del algoritmo desarrollado por ustedes de las licencias médicas (el enunciado se encuentra al final). Para ello, el líder del grupo debe realizar la presentación de no más de 3 minutos).
2. Asociar el tema respectivo de cada alumno a la sintaxis del lenguaje JAVA. Para ello cada alumno debe investigar la sintaxis en JAVA de su tema respectivo de una forma básica (no más de 1,5 minutos en el vídeo). Se debe asociar la sintaxis de los siguientes temas:
Tema 1:Leer y mostrar datos en pantalla, Asignación de variables y operadores aritméticos (sólo lo que se le pide).
Tema 2: Estructura de Decisión Simple y Anidada (sólo lo que se le pide).
Tema 3: Ciclo de repetición FOR (sólo lo que se le pide).
Tema 4: Ciclo de repetición WHILE (sólo lo que se le pide).
Tema 5: Ciclo de repetición REPEAT (sólo lo que se le pide)
Página 12
Pseudocódigo para pasar las variables de 2 dimensiones o arreglos a una sola dimensión de 10 espacios:
Proceso dosarreglospara1
definir minimo, arreglo1, arreglo2, arreglo3, i, j, k, g Como Entero
Dimension arreglo1[5]
Dimension arreglo2[5]
Dimension arreglo3[10]
para i=1 hasta 5 con paso 1 Hacer
Escribir "Ingrese un valor numerico: "
leer arreglo1[i]
FinPara
para i = 1 hasta 5 con paso 1 Hacer
minimo = i
Para j=i+1 Hasta 5 Con Paso 1 Hacer
Si arreglo1[j] < arreglo1[minimo] Entonces
minimo = j
FinSi
FinPara
aux = arreglo1[i]
arreglo1[i] = arreglo1[minimo]
arreglo1[minimo] = aux
FinPara
Para i=1 hasta 5 con paso 1 Hacer
Escribir arreglo1[i]
FinPara
para k=1 hasta 5 con paso 1 Hacer
Escribir "Ingrese un valor numerico: "
leer arreglo2[k]
FinPara
Para k = 1 hasta 5 con paso 1 Hacer
minimo = k
Para g=k+1 Hasta 5 Con Paso 1 Hacer
Si arreglo2[g] < arreglo2[minimo] Entonces
minimo = g
FinSi
FinPara
aux = arreglo2[k]
arreglo2[k] = arreglo2[minimo]
arreglo2[minimo] = aux
FinPara
Para k=1 hasta 5 con paso 1 hacer
Escribir arreglo2[k]
FinPara
Para q=1 hasta 5 con paso 1 Hacer
arreglo3[q]=arreglo1[q]
FinPara
Para w=6 hasta 10 con paso 1 Hacer
arreglo3[w]=arreglo2[w-5]
FinPara
Para n = 1 hasta 10 con paso 1 Hacer
minimo = n
Para l=n+1 Hasta 10 Con Paso 1 Hacer
Si arreglo3[l] < arreglo3[minimo] Entonces
minimo = l
FinSi
FinPara
aux = arreglo3[n]
arreglo3[n] = arreglo3[minimo]
arreglo3[minimo] = aux
FinPara
Escribir "Las 2 dimensiones unidas son: "
Para n=1 hasta 10 con paso 1 Hacer
Escribir arreglo3[n]
FinPara
FinProceso
Página 13
Pseudocódigo cuantos numeros negativos existen en el arreglo:
Proceso arr15
definir arreglo, i ,j como entero
definir negativo Como Real
Dimension arreglo[15]
para i=1 hasta 15 con paso 1 hacer
Escribir "Ingrese un valor numerico: "
leer arreglo[15]
Escribir arreglo[15]
Si arreglo[15] < 0 entonces
negativo=negativo+1
FinSi
FinPara
Escribir "Existen ", negativo, " numeros negativos en el arreglo"
FinProceso
Ordenamiento de datos:
Proceso Ordenamiento_de_datos
Definir arreglo, datos,i,minimo,aux Como Entero
Escribir "Ingrese la cantidad de datos que va a ingresar"
leer datos
Dimension arreglo[datos]
Escribir "Numeros originales: "
para i=1 hasta datos con paso 1 Hacer
arreglo[i] =azar(100)
Escribir arreglo[i]
FinPara
para i=1 hasta datos con paso 1 Hacer
minimo=i
para j=i+1 hasta datos con paso 1 Hacer
si arreglo[j] < arreglo[minimo] Entonces
minimo=j
FinSi
FinPara
aux=arreglo[i]
arreglo[i]=arreglo[minimo]
arreglo[minimo]=aux
FinPara
Escribir "Los datos ordenados son: "
para i=1 hasta datos con paso 1 Hacer
Escribir arreglo[i]
FinPara
FinProceso
Página 14
Posición de nombre en un arreglo:
Proceso arreglonombres
definir arreglo_a, nombre Como Caracter
definir i,j Como Entero
Dimension arreglo_a[30]
para i=1 hasta 30 con paso 1 Hacer
Escribir "Ingrese un nombre: "
Leer nombre
arreglo_a[i]=nombre
FinPara
para j=1 hasta 30 con paso 1 Hacer
Escribir "El nombre ubicado en el arreglo es; ", arreglo_a[j]
Escribir "Su pocision es: ", j
FinPara
Para i=5 hasta 30 con paso 1 hacer
arreglo_a[i-1]=arreglo_a[i]
Escribir i
FinPara
FinProceso
Promedio de todos los datos en un arreglo:
Proceso casi
definir arreglo,i,j Como Entero
Dimension arreglo[10]
para i=1 hasta 10 con paso 1 hacer
Escribir "Ingrese un valor numerico: "
leer arreglo[i]
promedio=promedio+arreglo[i]
FinPara
promediofinal=promedio/10
Escribir "El promedio de todos los numeros es: ",promediofinal
FinProceso
Página 15
Número más alto del arreglo:
Proceso casi
definir arreglo,i,j Como Entero
Dimension arreglo[10]
j=0
para i=1 hasta 10 con paso 1 hacer
Escribir "Ingrese un valor numerico: "
leer arreglo[i]
si j < arreglo[i] Entonces
j=arreglo[i]
FinSi
FinPara
Escribir "El numero mas alto es: ",j
FinProceso
Página 16
Proceso d
definir a, b, c, aux, min Como Entero
Dimension a[5], b[5] ,c[10]
Escribir "Arreglo 1: "
Para i=1 hasta 5 con paso 1 hacer
a[i]=Azar(100)
FinPara
Para i=1 hasta 5 con paso 1 hacer
min=i
Para j=i+1 hasta 5 con paso 1 hacer
Si a[j] < a[min] entonces
min=j
FinSi
FinPara
aux=a[i]
a[i]=a[min]
a[min]=aux
FinPara
Para i=1 hasta 5 con paso 1 hacer
Escribir a[i]
FinPara
Escribir "Arreglo 2: "
Para x=1 hasta 5 con paso 1 Hacer
b[x]=Azar(100)
FinPara
Para x=1 hasta 5 con paso 1 hacer
min=x
Para t=x+1 hasta 5 con paso 1 hacer
Si b[t] < b[min] entonces
min=t
FinSi
FinPara
aux=b[x]
b[x]=b[min]
b[min]=aux
FinPara
Para x=1 hasta 5 con paso 1 hacer
Escribir b[x]
FinPara
Para z=1 hasta 5 con paso 1 Hacer
c[z]=a[z]
FinPara
Para s=6 hasta 10 con paso 1 hacer
c[s]=b[s-5]
FinPara
Para h=1 hasta 10 con paso 1 hacer
min=h
Para g=h+1 hasta 10 con paso 1 hacer
Si c[g] < c[min] entonces
min=g
FinSi
FinPara
aux=c[h]
c[h]=c[min]
c[min]=aux
FinPara
Escribir "Las 2 dimensiones juntas son: "
Para f=1 hasta 10 con paso 1 Hacer
Escribir c[f]
FinPara
FinProceso
Arreglo bidimensional de 4x5
Proceso arreglobidi
definir mnumeros, mnumeros2, i, j, numero Como Entero
Dimension mnumeros[4,5], mnumeros2[4,5]
para i=1 hasta 4 con paso 1 Hacer
para j=1 hasta 5 con paso 1 Hacer
Escribir "Ingrese numero: "
leer numero
mnumeros[i,j]=numero
FinPara
FinPara
Escribir "--------------------------------------------------------"
Escribir "Numeros almacenados en la matriz: "
para m=1 hasta 4 con paso 1 Hacer
para n=1 hasta 5 con paso 1 Hacer
Escribir mnumeros[m,n]
FinPara
FinPara
Escribir "--------------------------------------------------------"
Para a=1 hasta 5 con paso 1 hacer
Escribir "Columna 1: ", mnumeros[1,a]
FinPara
Escribir "--------------------------------------------------------"
Para b=1 hasta 5 con paso 1 Hacer
Escribir "Columna 2: ", mnumeros[2,b]
FinPara
Escribir "--------------------------------------------------------"
Para c=1 hasta 5 con paso 1 hacer
Escribir "Columna 3: ", mnumeros[3,c]
FinPara
Escribir "--------------------------------------------------------"
Para d=1 hasta 5 con paso 1 hacer
Escribir "Columna 4: ", mnumeros[4,d]
FinPara
Escribir "--------------------------------------------------------"
Escribir "Numeros almacenados en la matriz 2, los mismos de la matriz 1: "
para i=1 hasta 4 con paso 1 Hacer
para j=1 hasta 5 con paso 1 Hacer
mnumeros2[i,j]=mnumeros[i,j]
Escribir mnumeros2[i,j]
FinPara
FinPara
Escribir "--------------------------------------------------------"
FinProceso
Informações
- Descrição
- Seguimiento de actividades realizadas, tanto como grupos o individuales.
- Criado por
- Eric Soto · jun 2019
- Atualizado
- 4 jul 2019
- Visualizações
- 37
- Avaliação