Documente Academic
Documente Profesional
Documente Cultură
Apuntes de fundamentos de
Algoritmos y Programación
Docente
KARR
01/01/2017
INDICE GENERAL
2. Algoritmo
Definición: Es el conjunto de instrucciones que especifican la secuencia de
operaciones a realizar en orden para resolver un sistema específico o clase de
problema. Los algoritmos son independientes tanto del lenguaje de programación
en que se expresa como de la computadora que los ejecuta. El diseño de la
mayoría de los algoritmos requiere creatividad y conocimientos profundos de la
técnica de la programación. En esencia. Todo problema se puede describir por
medio de un algoritmo (Aguilar, 1988)
Símbolo Función
Terminal: representa el comienzo, inicio,
final y fin de un programa. Puede
representar también una parada o
interrupción programada
5.1.1. Enteros:
Es un subconjunto finito de los números enteros. Los enteros son números
completos, no tienen componentes fraccionarios o decimales y pueden
ser negativos o positivos (Aguilar, 1988) , En java se representan con int,
long, short
Por ejemplo
Int X
5.1.2. Reales:
El tipo real consiste en un subconjunto de los números reales, Los
números reales siempre tienen su punto decimal y pueden ser positivos o
negativos
En java se representan con float, doublé
6. Constantes y Variables:
El programa de computadora contiene ciertos valores que no deben cambiar
durante la ejecución del programa tales valores se llaman constantes de igual
forma existen otros valores que cambiaran durante la ejecución del programa a
estos valores se les llama variables.
7. Operadores
Todos los símbolos que representan enlaces entre cada uno de los argumentos que
intervienen en una operación se llaman operadores y se utilizan para construir
expresiones. (Rodriguez Almeida, 1991) Los operadores pueden ser:
7.3. Alfanuméricos:
Se utiliza para unir datos alfanuméricos (Rodriguez Almeida, 1991)
7.5. Paréntesis:
Los paréntesis se utilizan para anidar expresiones,
7.6. ded
8. Expresiones
Las expresiones son combinaciones de constantes, variables, símbolos de
operación, paréntesis, y nombres de funciones especiales. Las mismas ideas son
utilizadas en notación matemática tradicional
Cada expresión toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecución de las operaciones indicadas
Una expresión consta de operando y operadores según el tipo de objetos que se
manipulan, se clasifican las operaciones en:
Aritméticas
Relacionales
Lógicas
Carácter
9. Regla de Prioridad
Según Rodríguez (Rodriguez Almeida, 1991), la prioridad a la hora de evaluar los
operadores en cualquier expresión es
Paréntesis
Potencias
Productos y divisiones
Sumas y restas
Concatenación
Relacionales
Lógicos
Según Joyanes(Aguilar, 1988)Las expresiones que tienen dos o más operadores
requieren usar reglas matemáticas que permitan determinar el orden de las
operaciones, se denominan reglas de prioridad o precedencia y son:
a) Las operaciones que están encerradas entre paréntesis se evalúan primero.
Si existen diferentes paréntesis anidados (interiores unos a otros), las
expresiones más internas se evalúan primero.
b) Las expresiones aritméticas dentro de una expresión suelen seguir el
siguiente orden de prioridad:
Operador exponencial (^)
Operadores de multiplicación y división
Operadores de suma y resta
Operadores lógicos or y and
11. Ejercicios
Encontrar el valor de la variable valor después de la ejecución de las
siguientes operaciones
a. Valor 4.0*5
b. X 3.0
Y 2.0
Valor X^Y – Y
c. Valor 5
X3
Valor valor* X
Deducir el resultado que se puede producir con las siguientes instrucciones
Variables x, y = enteros
X1
Y5
Escribir x, y
Deducir el valor de las expresiones siguientes
X A +B +C
XA+B*C
XA+B/C
X A + B mod C
X (A + B) / C
X A + (B / C)
X A + (B * C)
Siendo A =5, B =25, C= 10
Escribir las siguientes expresiones en forma de expresiones algorítmicas
𝐌
i. +𝑷
𝐍
𝑵
ii. 𝑴 + (𝑷−𝑸)
(𝑴+𝑵)
iii. (𝑷−𝑸)
𝒏
(𝑴+ )
𝒑
iv. 𝒓
(𝒒− )
𝒔
(𝒔𝒆𝒏𝒐(𝒙)+𝒄𝒐𝒔𝒆𝒏𝒐(𝒙))
v. 𝒕𝒂𝒏(𝒙)
−𝒃±√𝒃𝟐 −𝟒𝒂𝒄
vi. 𝟐𝒂
Como se intercambian los valores de las A, B y Aux
Aux A
AB
B Aux
Programa
Entrada (algoritmo de Salida
resolución)
Entrada: Son los datos que se ingresan por medio de una variable.
Programa: Son todas las instrucciones que representa un algoritmo (Diagrama
de Flujo de Datos o Pseudocódigo) de un problema abstracto, que es
codificado en un lenguaje de programación (Powerbuilder) o interprete (Perl,
Java,) que este respeta una sintaxis.
Salida: Son los datos resultantes del programa
$th=23;
Instrucciones de lectura
Esta instrucción lee datos de un dispositivo de entrada ejemplo leer edad,
tiempo. Ejemplos en PERL.
Ejemplo 1
Print " ingrese el nombre del empleado: ";
$nombre=<STDIN>;
Ejemplo 2
chomp($th);
Instrucciones de escritura
Esta instrucción escribe en un dispositivo de salida ejemplo escribir A, B, C
Ejemplos
En PERL :
print"empleado sueldo bruto descuento sueldo neto \n";
print"==============================================\n";
print " $sb $desc $sn $nombre";
En matlab :
disp('la suma de dos números es :');
disp(s);
Instrucciones de bifurcación
El desarrollo lineal de un programa se interrumpe cuando se ejecuta una
bifurcación. Las bifurcaciones pueden ser según el punto del programa a
donde se bifurca hacia adelante o hacia atrás.
o Bifurcación incondicional: se realiza siempre que el flujo del
programa pase por la instrucción sin necesidad del cumplimiento
de ninguna condición
Acción 1
Acción 2
Acción 3
¿?
Acción F1 Acción F2
Ejemplo en Perl
if($num <=1){
return $factor=1;}
else {
return $factor= $num*&factorial($num-1);
}
}
Ejemplo 2
Escriba un algoritmo que pregunte por dos números y muestre como
resultado la suma de estos. Use Pseudocódigo y diagrama de flujos.
Ejemplo 3
A continuación, se presenta un Pseudocódigo en PERL.
print" ingrese el nombre del empleado: ";
$nombre=<STDIN>;
#chop($nombre);
print" ingrese la cantidad de horas trabajadas: ";
$th=<STDIN>;
chop($th);
print" ingrese el costo por hora trabajo: " ;
$cph=<STDIN>;
chop($cph);
$sb= $th*$cph;
$desc=$sb*0.13;
$sn=$sb-$desc;
print" sueldo bruto descuento sueldo neto empleado \n";
print"==============================================\n";
print " $sb $desc $sn $nombre";
Ejemplo 4
A continuación, se presenta un Pseudocódigo en PERL.
V0 k3[ ES ]
5. Escriba un programa que calcule el área de un triángulo rectángulo,
dada la altura y la base.
6. Elabore un programa que realice la conversión de cm. a pulgadas.
Donde 1 cm = 0.39737 pulgadas. Por lo tanto, el usuario proporcionará
el dato de N cm. y el programa dirá a cuantas pulgadas es equivalente.
7. Elabore un programa que realice la conversión de pulgadas a cm.
Donde 1 cm. = 0.39737 pulgadas. Por lo tanto, el usuario proporcionará
el dato de N pulgadas y el programa dirá a cuantos centímetros
equivale.
8. Elabore un programa que realice la conversión de metros a pies
Donde 1 m = 3.2808 pies, Por lo tanto, el usuario proporcionara el dato
de N m y el programa dirá a cuantos pies equivale.
9. Elabore un programa que realice la conversión de pies a metros
Donde 1 m = 3.2808 pies. Por lo tanto, el usuario proporcionará el dato
de N pies y el programa dirá a cuantos metros equivale.
10. Elabore un programa que realice la conversión de kilogramos a libras
Donde 1 Kg. = 2.2046 libras. Por lo tanto, el usuario proporcionara el
dato de N Kg. y el programa dirá a cuantas libras equivale.
11. Elabore un programa que realice la conversión de libras a kilogramos
Donde 1 Kg. = 2.2046 libras. Por lo tanto, el usuario proporcionará el
dato de N libras y el programa dirá a cuantos kilogramos equivale.
12. Introducir 5 notas por teclado, obtener la suma de las notas, el
promedio de las mismas y el doble de las notas.
13. Un alumno desea saber cuál será su calificación final en la materia de
Algoritmos. Dicha calificación se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificación del examen final.
15% de la calificación de un trabajo final.
14. Calcular el número de pulsaciones que una persona debe tener por cada
10 segundos de ejercicio, si la fórmula es:
num. Pulsaciones = (220 - edad) /10
ab cd 2a
Valor 2
4cd
c a
c
2a 5b 4
ab cd 2a
Valor 2
4cd
c a
c
2a 5b 4
26. Leer un valor real x del teclado. Calcular y escribir r=x2 – 2x3
27. Elaborar un algoritmo para convertir a radianes un valor de ángulo
medido en grados sexagesimales
28. Calcular y escribir la temperatura T que corresponde a n moles de gas
ideal sometido a una presión P cuando ocupa un volumen V. Se supone
que los valores de P y V se proporcionan por teclado. R es una constante
universal de los gases
PV nRT
29. Crea un programa para que almacene una secuencia de DNA que hay a
continuación en una variable, y la escriba en la pantalla.
Secuencia de DNA: ACGGGAGGACGGGAAAATTACTACGGCATTAGC
30. Guarda las dos secuencias de DNA siguientes en dos variables escalares
y escríbelas en la pantalla. A continuación, crea una tercera variable que
contenga las dos primeras concatenadas. Escribe también el resultado.
Primera secuencia de DNA:
ACGGGAGGACGGGAAAATTACTACGGCATTAGC
Segunda secuencia de DNA: ATAGTGCCGTGAGAGTGATGTAGTA
31. Ingresar un numero de cuatro dígitos y que obtenga e imprima el
número que resulta de invertir sus cifras
32. Realizar un programa que calcule la longitud y el área total de tres
circunferencias sabiendo que la 1ra de ellas tiene un radio R que será
introducido por teclado, la 2da tiene un radio 3R y la 3ra tiene un radio
de 3R.
A DO lc
Dónde:
є = Coeficiente de extinción molar
c = Concentración
l = Paso de luz de la cubeta. Las proteínas y los ácidos nucleicos
absorben la luz en el intervalo ultravioleta, a longitudes de onda
comprendidas entre los 210 y los 300 nm
Elaborar un algoritmo para calcular la absorbancia
34. Un vendedor recibe un sueldo base más un 10% extra por comisión de
sus ventas, el vendedor desea saber cuánto dinero obtendrá por
concepto de comisiones por las tres ventas que realiza en el mes y el
total que recibirá en el mes tomando en cuenta su sueldo base y
comisiones.
35. Elaborar un programa en el cual se ingrese la distancia que existe entre
dos vehículos y sus respectivas velocidades ¿hallar el tiempo de alcance
y el tiempo de encuentro?
36. Elabore un programa en la que me devuelva la altura y la velocidad final
de un cuerpo si se deja caer, ingresando únicamente el tiempo.
37. Convierta un ángulo sexagesimal g, m, s a grados, minutos y segundos
centesimales.
38. Elaborar un programa en el que se ingrese la masa atómica y la cantidad
de neutrones para que nos devuelva el número atómico, la cantidad de
neutrones y protones.
39. Elaborar un programa en el que ingrese el tiempo en el que se demora
en llegar el sonido de una detonación a cierto lugar. ¿calcular la
distancia donde se realizó la detonación?
40. Elaborar un algoritmo que solicite el número de respuestas correctas,
incorrectas y en blanco, correspondientes a postulantes y muestre su
puntaje final considerando, que por cada respuesta correcta tendrá 4
puntos, respuestas incorrectas tendrá -1 y respuestas en blanco tendrá
0.
41. Elaborar un algoritmo que permita ingresar el número de partidos
ganados, perdidos y empatados, por algún equipo en el torneo apertura,
se debe demostrar su puntaje total, teniendo en cuenta que por cada
partido ganador obtendrá 3 puntos, empatado 1 punto y perdido 0
puntos.
42. Elabore el algoritmo que permita ingresar dos valores numéricos
enteros cualquiera, luego de evaluar se debe imprimir sus valores
intercambiados.
43. Cifrado de datos: dado un número de cuatro dígitos se reemplazará
cada dígito por (dígito +7) módulo 10. A continuación se intercambiará
el primer dígito por el tercero y el segundo por el cuarto, y ese será el
número cifrado.
44. Fibonacci fue un matemático italiano que se planteó el siguiente
problema: Dada una pareja de conejos jóvenes, y suponiendo que los
conejos tardan un año en madurar a partir del año siguiente cada pareja
madura de conejos da a luz a una pareja de conejos jóvenes ¿Cuántas
parejas de conejos habrá una vez transcurridos n años?
La respuesta es:
1 1 5 n 1 5 n
Fn (( ) ( ) )
5 2 2
46. Pepe quiere viajar a Londres la próxima semana y para saber cómo está
el tiempo allá estuvo mirando el programa del tiempo que transmiten
en un canal de televisión inglés.
Cuando el anunciador del tiempo dio las temperaturas de la próxima
semana Pepe se llevó una gran sorpresa pues no las entrego en grados
Celsius, sino en grados Fahrenheit ¿Puede proponer una solución
algorítmica para que Pepe pueda determinar qué tan frio esta Londres
en este tiempo?
Ayuda
Para calcular la temperatura en grados Celsius podemos utilizar la
fórmula:
5
T (C ) (T ( F ) 32)
9
Dónde:
H= entalpia
S=entropía de la formación de la hélice
R= constante molar de los gases
C= concentración de los cebadores
T f 2( A T ) 4(G C )
50. Permita ingresar cuatro valores reales, los primeros tres son longitud,
ancho y altura (en centímetros) de un prisma rectangular. El cuarto valor
real es el peso (en gramos) del prisma. Escriba un programa para
calcular e imprimir la densidad de este objeto.
51. Elaborar un algoritmo para calcular el pronóstico por el método de
suavización exponencial simple, según la formula.
Fi 1 Ai (1 ) Fi
Donde
Fi+1: Pronostico en el periodo i+1
Fi: Pronostico realizado en el periodo i
Ai: las ventas o demanda real en el periodo i
α: Factor de ponderación o constante de ajuste exponencial
Error et At Ft
Pseudocódigo
Si condición Entonces
Instrucción
Fin si
En Diagrama de flujo se muestra en la figura.
Condición
Instrucción
Si condición entonces
Condición
Instrucción 2
Sino
Instrucción 1
Fin si Instrucción 1 Instrucción 2
Condición 1
Condición 2
Instrucción 3
Instrucción 4
pseudocódigo
Si condición 1 entonces
Si condición 2 entonces
Instrucción 2
Sino
Instrucción 1
Fin si
Sino
Instrucción 3
Si condición 3 entonces
Instrucción 4
Fin si
Fin si
Diagrama de Flujo
Condición
Pseudocódigo
Case 1:
Case 2:
.
.
.
Case n:
Fin según
14.2.4. Ejemplos
Ejemplo 1:
Resolución de una ecuación de primer grado
Si la ecuación es ax + b =0, a y b son los datos y las posibles soluciones
son
Si a <> 0 entonces x= -b/a
a=0 b<>0 entonces “solución imposible”
a= 0 b =0 entonces “solución indeterminada”
pseudocódigo
Inicio
Leer a, b
Si (a <> 0) entonces
x - b/a
Sino
Si (b<>0) entonces
Escribir “solución imposible”
Sino
Escribir “solución indeterminada”
Fin- si
Fin – si
Fin
Ejemplo 2
Resolución de la ecuación de segundo grado teniendo en cuenta los
tres posibles valores de discriminación
La ecuación de segundo grado es:
ax^2 + bx +c = 0
El discriminante D vale
D = b^2 - 4ac
Y las raíces son
−𝑏 ±√𝑏2 −4𝑎𝑐 −𝑏±√𝐷
X1, x2 = =
2𝑎 2𝑎
Si el discriminante es menor que cero, las raíces son imaginarias
Algoritmo Pseudocódigo
Inicio
Leer a, b, c
D b^2 -4*a*c
Según sea D hacer
D <0: escribir “raíces complejas”
D = 0: x - b/2*a
D >0: rcraíz cuadrada(D)
X1 (-b + rc)/2*a
X2 (-b -rc)/2*a
Escribir x1, x2
Fin _ según
fin
Ejemplo 3
Se desea diseñar un algoritmo que escriba los nombres de los días de
la semana en función del valor de una variable DIA introducida por
teclado
Inicio
Leer Día
Según_ sea DIA hacer
1: escribir “lunes”
2: escribir “martes”
3: escribir “miércoles”
4: escribir “jueves”
5: escribir “viernes”
6: escribir “sábado”
7: escribir “domingo”
Otros: escribir “Error”
Fin_ según
Fin
Ejemplo 4
El ejercicio 1 de los propuestos en Código en perl
print "ingrese 1ra medida: ";
$m1=<STDIN>;
chop($m1);
print"ingrese 2da medida: ";
$m2=<STDIN>;
chop($m2);
print"ingrese 3ra medida: ";
$m3=<STDIN>;
chop($m3);
print"ingrese 4ta medida: ";
$m4=<STDIN>;
chop($m4);
$media=($m1+$m2+$m3+$m4) /4;
if ($media <= 4) {
print"el ruido no es nocivo \n";
print"su media es: $media";
}
else {
print"el ruido es nocivo \n";
print"su media es: $media”;
}
Ejemplo 5
El ejercicio 2 de los propuestos en Código en perl
Ejemplo 7
El ejercicio 2 de los propuestos en Código de Matlab
sueldo = input ('ingrese el sueldo del cliente');
nh=input ('ingrese el número de hijos: ');
est=input ('ingrese el estado civil: '); % 0 = casado y 1 =soltero
if (sueldo > 1200)
disp('se le concede el prestamo');
else if ((sueldo <=1200) && (sueldo > 1000) && (nh==0) &&(est==1))
disp('se le concede el prestamo');
else if ((sueldo <=1200) &&(sueldo > 1000)&& (nh==0) &&(est==0))
disp('se le concede el prestamo');
else
disp(' no se le concede el prestamo');
end
end
end
x F(x)
X є [-1,3) 10-x
X > 50 1
resto 0
instrucción Porcentaje
Hasta 5to secundaria 5%
técnico 10%
profesional 20%
ab cd 2a
Valor 2
4cd
c a
c
2a 5b 4
45. Leer cuatro valores reales y calcular la siguiente expresión
suponga que se ingresa valor cero a c)
ab cd 2a
Valor 4cd
c2 a2
c
2a 5b 4
46. Escribir un algoritmo cree un menú de conversión para:
¿Pulgadas a centímetros (1 pulgada = 2.54 cm)?
¿Pies a metros (1 pie = 0.3048 metros = 12 pulgadas)?
¿Millas por hora a kilómetros por hora (60 millas\hora = 80
Km\hora)?
¿Grados a radianes (360 grados = 2pi radianes, pi=3.141592)?
47. Desarrolle un algoritmo para la siguiente función
0 si x0
x0
si 0 x 16.67
TINS ( x) 16.67 0
33.34 x si 16.67 x 33.34
33.34 16.67
x 33.34
0 si
[ E ][ S ] k2 k3
km
[ ES ] k1
80. Elaborar un algoritmo para calcular la velocidad inicial según la ecuación
Briggs y Haldane
k3 ( E0 [ S ])
V0
[ S ] km
81. Elaborar un programa para calcular la velocidad inicial, Cuando no se
conoce la concentración de la enzima E0 por lo que es conveniente
sustituir el producto k3E0 por Vmax (Velocidad Máxima).
Vmax [ S ]
V0
[ S ] km
82. Elaborar un programa de acuerdo a la concentración de inhibición
seleccionar el inhibidor de la PCR( Reacción en cadena de la Polimerasa)
según la siguiente tabla
Dónde:
A260 = absorbancia medida a 260 nm.
RETENCION IAN
ENERO, FEBRERO, MARZO 12
RETENCION IAN - Retenciones de Enero a
ABRIL Marzo
9
RETENCION IAN - Retenciones de Enero a Abril
MAYO, JUNIO, JULIO 8
RETENCION IAN - Retenciones de Enero a Julio
AGOSTO 5
RETENCION IAN - Retenciones de Enero a
SETIEMBRE, OCTUBRE, Agosto
NOVIEMBRE 4
RETENCION IAN - Retenciones de Enero a
DICIEMBRE Noviembre
Renta Total
Renta Bruta Cuarta Categoría (lo que recibió como
S/.58,400
independiente)
S/.11,680
-Deducción de 20% de renta bruta de cuarta (20% de
S/.58,400)
Renta Neta de Cuarta Categoría S/.46,720
+ Ingresos de Quinta Categoría (lo que recibió como
S/.49,000
dependiente)
Total ingresos de Cuarta y Quinta Categoría S/.95,720
S/.25,200
-Deducción 7 UIT
(7 x S/.3,600)
Renta neta a la que se le aplica el impuesto S/.70,520
Falsa
Condición
Verdadera
Acciones
Acciones
Falso
Variable índice >
valor final
Verdadero
Acciones
Cuerpo del bucle
Repetir
Accion1
Acción 2
.
.
.
Hasta _que Condición
Acciones
Falsa
Verdadera
Condición
14.3.4. Ejemplos
Ejemplo 1
Hallar el factorial de un numero N utilizando la estructura desde
Inicio
Leer N
Fact 1
Desde i 1 hasta N hacer
Factfact*i
Fin_desde
Escribir “el factorial de”, N, “es”, fact
Fin
Ejemplo 2
Inicio
Leer M, N
Resto M
Cociente 0
Repetir
Resto resto – N
Cociente cociente + 1
Hasta_ que resto < N
Escribir “dividiendo”, M, “divisor”, N, “Cociente”, cociente, Resto
Fin
Ejemplo 4
Ejemplo 1 en código Perl
print"ingrese un numero para hallar su factorial: ";
$n=<STDIN>;
chop($n);
$i=1;
$fact=1;
if ($n==0)
{
print"$fact" ;
}
else
{
while($i<=$n)
{
$fact=$fact*$i;
$i++;
}
print"el factorial es: $fact" ;
}
Ejemplo 5
El ejemplo 1 En código en Matlab
n=input('ingrese un numero para hallar el factorial : ');
i=1;
fact=1;
if n==0
disp('el factorial es :');
disp(fact);
else
while i<=n
fact=fact*i;
i=i+1;
end
disp('el factorial es: ');
disp(fact);
end
Ejemplo 6
Calcular el factorial de n números leídos por teclado, en código
perl.
print"ingrese el número de factoriales a calcular: ";
$n=<STDIN>;
chop($n);
for($i=1;$i<=$n;$i++)
{
print"ingrese un numero: ";
$num=<STDIN>;
chop($num);
$fact=1;
for($j=1;$j<=$num;$j++ )
{
$fact=$fact*$j;
}
print"el factorial del número $num es $fact \n";
}
Ejemplo 7
Calcular el factorial de n números leídos por teclado, código
matlab
n=input('ingrese el número de factoriales a calcular: ');
for i=1:n
num=input('ingrese un numero: ');
fact=1;
for j=1:num
fact=fact*j;
end
disp(fact);
end
Ejemplo 8
Dados dos números enteros, realizar el algoritmo que calcule el
cociente y el resto en código perl
print"ingrese el primer número: ";
$a=<STDIN>;
chop($a);
print"ingrese el segundo número: ";
$b=<STDIN>;
chop($b);
$resto=$a;
$cociente=0;
do
{
$resto=$resto-$b;
$cociente=$cociente+1;
}
until($resto<$b);
print"dividendo : $a, divisor: $b, cociente: $cociente, resto:$resto";
Ejemplo 9
Determine el máximo común divisor de dos números
Inicio
Leer a, b
Para i 1 hasta a hacer
R1resto(a/i)
Para j1 hasta b hacer
R2resto (b/j)
Si (i=j) y (r1=0) y (r2=0) entonces
Mcd=i
Fin si
Fin para j
Fin para i
Escribir mcd
Fin
Ejemplo 10
Encuentre e imprima los números primos entre 1 y 100
Inicio
n2
s0
escribir 1
Para i2 hasta 100 hacer
Mientras n ≤ i hacer
Si resto (i/n) =0 entonces
ss + n
Fin si
nn+1
Fin mientras
ps+1
qi+1
Si p=q entonces
Escribir i
Fin si
n2
s0
fin para
Fin
Ejemplo 11
Desarrolle un algoritmo para aproximar la siguiente función por
serie de Taylor
P
rimera forma
Inicio
(x = exponente de la función y n = N° de términos de la serie de
Taylor)
Leer x, n
I 1
s0
Mientras i ≤ n hacer
Potenciax ^ i
Factorial1
mi
J1
Repetir
Factorialfactorial*j
jj+1
Hasta que j > m
ss + potencia/factorial
ii+1
Fin mientras
e 1 +s
Escribir e
Fin
Segunda forma
Inicio
(x = exponente de la función y n = N° de términos de la serie de
Taylor)
Leer x, n
I 0
s0
Mientras i ≤ n hacer
Potenciax ^ i
Si i = 0 entonces
Factorial1
Sino
Factorial1
mi
J1
Repetir
Factorialfactorial*j
jj+1
Hasta que j > m
Fin si
ss + potencia/factorial
ii+1
Fin mientras
Escribir s
Fin
Ejemplo 12
Realizar un algoritmo que escriba los n primeros números de la
serie de Fibonacci, se sabe que la serie se origina a partir de dos
números que sirve patrón o base y el tercer número es la suma de
los dos anteriores
1, 2, 3, 5, 8, 13, 21,…….
Primera forma
Inicio
Leer n
Fibo11
Fibo22
i3
Escribir fibo1, fibo2
Repetir
Fibofibo1 + fibo2
Escribir fibo
Fibo1fibo2
Fibo2fibo
ii+1
Hasta que i >n
Fin
Inicio
Leer n, a, b
Fibo1a
Fibo2b
i2
Escribir fibo1, fibo2
Repetir
ii+1
Fibofibo1 + fibo2
Fibo1fibo2
Fibo2fibo
Escribir fibo
Hasta que i >n
Fin
Ejemplo 13
Mostrar los N primeros términos de la siguiente serie, donde N
debe estar entre 5 y 30
5, 7, 10, 14, 19,…..
Inicio
Leer n
Si (n≥5) y (n≤30) entonces
i1
s5
Escribir s
Mientras i<n hacer
ii +1
ss + i
Escribir s
Fin mientras
Sino
Escribir número fuera de rango
Fin si
Fin
Ejemplo 14
Calcular el valor máximo de una serie de 10 números, leidos por
teclado
Inicio
Leer num
i1
maxnum
Repetir
ii +1
Leer num
Si max < num entonces
maxnum
fin si
hasta que I > 10
Escribir max
Fin
Ejemplo 14
Determinar simultáneamente los valores máximo y mínimo de una
lista de 100 números leídos por teclado
Inicio
Leer num
maxnum
minnum
desde i 2 hasta 100 hacer
Leer num
Si max ≤ num entonces
maxnum
sino
Si num ≤ min entonces
minnum
fin si
fin si
fin desde
Escribir max, min
Fin
Ejemplo 15
Calcular el Máximo Común Divisor de dos números A y B de
acuerdo con el algoritmo de Euclides.
Inicio
Leer A, B
Si A < B entonces
auxB
BA
Aaux
Mientras B ≠ 0 hacer
Rresto(A/B)
AB
BR
Fin mientras
Escribir A
Sino
Mientras B ≠ 0 hacer
Rresto(A/B)
AB
BR
Fin mientras
Escribir A
Fin
x x 2 x3 xn , Para N > 0
e =1+x+ + +...+
2! 3! n!
Para un N dado
𝑥𝑛
Para que N sea tal que < e (por ejemplo e = 10 - 4)
𝑛!
Escribir un algoritmos que calcule la exponencial de a
según dicha fórmula, utilizando n=10 y luego n=20.
12. Diseñar un algoritmo que determine los números primos entre dos
números dados.
13. Los empleados de una fábrica trabajan en dos turnos, diurno y
nocturno. Se desea calcular el jornal diario en una semana de
acuerdo con los siguientes puntos:
Las tarifas de las horas es de 50 nuevos soles
La tarifa de las horas nocturnas es de 80 nuevos soles
Caso de ser domingo la tarifa se incrementa en un 100%
tanto en el turno diurno y nocturno
14. Diseñar el algoritmo que dado una lista números leídos por
teclado, indique si es par o es impar e imprima el total de números
leídos, además el total de los pares e impares.
15. Dado un número N, calcular la suma 5 +10 +15 + 20+ . . . +5* n
16. Diseñar el algoritmo que encuentre (muestre) los números pares
que hay entre 100 y 1000.
17. Diseñar el algoritmo que calcule la suma de los pares que hay
entre dos números dados.
18. ¿Calcular los pagos mensuales de una hipoteca y el total a pagar.
El programa debe solicitar el capital, el interés anual y el número
de años y debe escribir la cuota a pagar mensualmente. Para
calcular la cuota se utiliza la siguiente fórmula: Sea C el capital del
préstamo, R la tasa de interés mensual y N el número de pagos. La
cuota mensual viene dada por:
f ( x) sen( x) cos(1 x 2 ) 1
xi1 xi
erp x100
xi1
21. Desarrolle el algoritmo del trapecio: para calcular por medio del
método del trapecio la integral de la siguiente función.
F(X) = 0.2 + 25 X - 200 X2 + 675 X3 - 900 X4 + 400 X5
El proceso consiste de la siguiente manera
Leer el intervalo a, b y el número de sub intervalos
Dividir el intervalo en n sub intervalo
Evaluar la función en los extremos de los sub intervalos
Aplicar la formular
Salida integral aproximada
h( f ( x0 ) 2 f ( x1 ) 2 f ( x2 ) ... 2 f ( xn 1 ) f ( xn ))
It
2
ba
h
n
a = f (xo)
b = f (xn)
22. Desarrolle el algoritmo del trapecio que consiste en la siguiente
formula.
n1
f ( xa ) 2 f ( xi ) f ( xb )
I (b a) i 1
2n
3h n 1 n 3
b
a
f ( x)dx I
8
f ( x0 ) 3
i 1,2,4,5,...
f ( xi ) 2
i 3,6,9,...
f ( xi ) f ( xn )
ba
h
n
e a ( x a ) e a ( x a ) 2 e a ( x a )3 e a ( x a) n
e x ea ...
1! 2! 3! n!
( x b) ( x b) 2 ( x b)3 ( 1) n ( x b) n
ln(a x) ln(a b) ...
(a b) 2(a b) 2 3( a b)3 n( a b) n
x x2 x3 (1) n x n
L n(a x) L n(a) 2
3
...
a 2(a) 3(a) n( a ) n
33. Desarrollar un algoritmo para Aproximar la siguiente función y
1 x x3 x5 x 2 n1
y L n( ) 2( x ... )
1 x 3 5 2n 1
34. Dado n>0 hallar la suma
n
1
s
k 1 k
n
1
35. Se desea calcular la suma s siendo los valores ak los
k 1 ak
elementos de la sucesión dada por ak= ak-1+ ak-2, para k > 2, con
a1=1 y a2=1. El limite n ha de leerse del teclado y se supone mayor
que dos.
n
1
36. Se desea calcular la suma s m , siendo m y n dos números
k 1 k
39. Escribir un programa que halle los logaritmos de una base a otra
base, se conoce el número positivo X. la base a y la otra base b,
estos deben ser mayores que uno y diferente de uno. El programa
debe terminar hasta que se ingrese un valor X igual que 0
log a ( x)
log b ( x)
log a (b)
2 calculando los K
At 1 At 2 At 3 ... At n
Ft
n
Donde
Ft: Pronostico para el siguiente periodo
N: número de periodos para promediar
At-1: Ocurrencia real en el periodo pasado
At-2, At-3 y At-n: Ocurrencias reales hace dos periodos, hace tres
periodos y así sucesivamente hasta hace n periodos
82. Elaborar un algoritmo para calcular el pronóstico por el método de
media móvil ponderada, según la siguiente formula
Ft w1 At 1 w2 At 2 ... wn At n
Donde
W1: Ponderación dada en la ocurrencia real para el periodo t-1
W2: Ponderación dada en la ocurrencia real para el periodo t-2
Wn: Ponderación dada en la ocurrencia real para el periodo t-n
n : Número total de periodos en el pronostico
w 1
i 1
i
n At Ft
MAD
i 1 n
Dónde:
N: La cantidad de periodos considerados
84. Elaborar un algoritmo para medir el error en los pronósticos,
según el método de la raíz de la media del error cuadrático medio
(RMSE)
At Ft
2
n
RMSE t 1 n
1 n At Ft
MAPE
n t 1 At
Px (nx ) p x q n x
87. Elabore un algoritmo para calcular la combinación de un número ,
m
n
siendo m y n dos enteros positivos.
Fin
Donde
Nombre: Es el nombre del procedimiento a invocar
Parámetros formales: Tiene el mismo significado que en las funciones
Parámetros variables: En algunos lenguajes de programación está permitido
este tipo de declaración, para designar que ellos obtendrán resultados del
procedimiento en lugar de los valores actuales asociados a ellos.
Invocación a una función
(Llamar_a) nombre (lista de parámetros actuales)
Por ejemplo
Procedimiento división (dividendo, divisor, cociente, resto)
Inicio
Cociente dividendo/ divisor
Resto dividendo - cociente*divisor
Retorno
Fin
Algoritmo aritmética
Inicio
Leer M, N
Llamar_a división (M, N, P, Q)
Escribir p, Q
Fin
15.2. Funciones
Matemáticamente una función es una operación que tiene uno o más valores
llamados argumentos y produce un valor denominado resultado o valor de la
función para los argumentos dados (Aguilar, 1988)
Declaración de una función
Fin
Dónde:
Par1, par2,… Lista de parámetros o argumentos
Nombre_ función Nombre asociado con la función, que será un nombre de
identificación valido
Acciones instrucciones que constituyen la definición de la función y que debe
contener una acción solo de asignación que asigne un valor al nombre de la
función, es decir, nombre_ función expresión
Por ejemplo la función
𝒙
𝒇(𝒙) =
𝟏 + 𝒙𝟐
Función fun(x)
Inicio
Funx/(1 + x^2)
Fin
Invocación de una función
Una función puede ser llamada solo mediante referencia de la forma
siguiente:
Variable de asignación nombre _ función (par1, par2,…)
Por ejemplo
F_x fun(x)
Procedimiento vs función
i. Un procedimiento es llamado desde el algoritmo o programa principal
mediante su nombre y una lista de parámetros actuales o bien con la
instrucción llamar. Al llamar el procedimiento se detiene
momentáneamente el programa que se estuviera realizando y el
control pasa al procedimiento llamado. Después que las acciones del
procedimiento se ejecutan, se regresa a la acción inmediatamente
siguiente a la que se llamó.
ii. Las funciones devuelven un valor, las subrutinas pueden devolver 0,1 o
más valores y en forma de la lista de parámetros
iii. El procedimiento se declara igual que la función, pero su nombre no
está asociado a ninguno de los resultados que obtiene
Inicio
Leer n
Fact factorial(n)
Escribir “el factorial de n es”, fact
Fin
Ejercicios
1. Diseñar un algoritmo que calcule el máximo común divisor de dos
números mediante el algoritmo de Euclides con el siguiente
procedimiento
a. Dividir el número mayor (A) por el menor (B). Si el resto de la
división es cero el numero B es el máximo común divisor
b. Si la división no es exacta, se divide el número menor (B) por el
resto de la división anterior
c. Se siguen los pasos anteriores hasta obtener un resto cero. El
último divisor es el mcd buscado
2. Para calcular el máximo común divisor (mcd) de dos números, se
recurre a una función específica definida con un programa con un
subprograma. Se desea calcular la salida del programa principal
con dos números A y B, cuyos valores son 15 y 10, es decir, el mcd
(A, B) y comprobar el método de paso de parámetros por valor
3. Realizar un algoritmo que permita ordenar tres números mediante
un procedimiento de intercambios de dos variables
4. Diseñar una función que calcule la media de tres números leídos del
teclado y poner un ejemplo de su aplicación
5. Realizar un procedimiento que realice la conversión de coordenadas
polares (r, ) a coordenadas cartesianas (x, y)
X = rcos()
Y = rseno()
6. Función que calcule xy, con x є R, y suponiendo que y es un valor
entero y > 0
7. Función que calcule xy, con x є R, y suponiendo que y es un valor
entero que puede ser positivo, negativo o cero
Entero
Real
Estándar Carácter
Lógico
Datos simples
i A(i)
1 14.0
2 12.0
3 8.0
Subíndice o índice 4 7.0
5 8.40
6 8.20
7 8.15
8 7.25
Donde
Nombre arreglo: nombre valido del arreglo
Liminf . . . limsup :límite inferior y superior del rango del arreglo
Tipo de dato: es el tipo d datos de los elementos del arreglo, puede ser
entero, carácter, real,…
Asignación a un arreglo
A (1) 10 se asigna el valor 10 a la posición 1 del vector A
A (5) 20 se asigna el valor 20 a la posición 5 del vector A
Lectura y escritura de datos
La lectura y escritura de un arreglo u operaciones de entrada y salida
normalmente se realizan con estructuras repetitivas.
Final = arreglo [1.. 20] de real
// Lectura
Desde i = 1 hasta 20 hacer
Leer final (i)
Fin desde
// Escritura
Desde i = 1 hasta 20 hacer
Escribir final (i)
Fin desde
Ejemplo 1
Escribir un algoritmo que permita calcular el cuadrado de los 100
primeros números enteros y a continuación escribir una tabla que
contenga dichos 100 números cuadrados.
Algoritmo
Inicio
Desde N 1 hasta 100 hacer
C N*N
Escribir N, C
Fin desde
{Escritura de la tabla}
Desde N 1 hasta 100 hacer
A(N) N*N
Escribir A(N)
Fin desde
Fin
Ejemplo 2
16.1.1. Ejemplos
Ejemplo 1
Ejercicio 21
Inicio
Leer a,b,e
Fa sen(a)+cos(1+a^2)-1
Fb sen(b)+cos(1+b^2)-1
Si fa*fb <0 entonces
Repetir
c(b+a)/2
Fc sen(c)+cos(1+c^2)-1
Si fb*fc ≤ 0 entonces
ac
Fa sen(a)+cos(1+a^2)-1
sino
bc
Fb sen(b)+cos(1+b^2)-1
fin si
Escribir a, b, c, fa, fb, fc
ii+1
Hasta que (b-c ≤ e)
Fin
Ejercicio 26
Inicio
Leer n, x
S0
Si (x > -1) y (x ≤ 1) entonces
Para i1 hasta n hacer
potx^i
Si resto (i/2)=0 entonces
S s-pot/i
Sino
S s + pot/i
Fin si
Fin para
Fin si
Escribir s
Fin
16.1.2. Ejercicios
A T
T A
C G
G C
32. En un juego de cartas cada participante saca una cara del mazo.
Cuando todos los jugadores han sacado su carta, quien obtiene la
mayor carta gana. El juego se repite hasta que se terminan las
cartas.
Implementar este juego de cartas para que un jugador juegue
contra el computador
33. Palíndromos: plegamiento o apareamiento de una hélice consigo
misma. El palíndromo también es una figura gramatical que se lee
igual en los dos sentidos, por ejemplo: DABALE ARROZ A LA ZORRA
EL ABAD. Existe ADN palindrómico de hélice sencilla y de hélice
doble. En el palíndromo de doble cadena la secuencia de bases se
lee igual en dirección 5’ P→ 3’OH en ambas cadenas.
34. Elaborar un algoritmo para implementar la matriz ANOVA para la
prueba de hipótesis con la siguiente formulas y probarlo con los
siguientes datos
n
X e
x
i 1
2
i
Grados
Fuente Suma de Cuadrados de Cuadrados medios F
Libertad
c 1 CMfactor
SCfactor
c 1 CMfactor
x
2
Factor C 2
CMerror
SCfactor i
ki n (Total de datos)
nc ScError
2 CMerror
SCerror x 2
C i nc
Error
ki
2
X P 2
xi
i 1
X max xi
1i n
40. Elaborar un algoritmo para calcular la frecuencia absoluta y su
acumulada absoluta; frecuencia relativa y su acumulada relativa;
frecuencia porcentual y su acumulada porcentual de una lista de n
elementos, los datos deben estar agrupados por intervalo, además
se debe calcular su media, desviación estándar y su varianza de los
datos
16.1.3. De
Algoritmo:
Método de Selección
Algoritmo
Función Posmayor (j,tabla)
Inicio
Índice_max 1
Desde índice 2 hasta j hacer
Si tabla [índice]> tabla [índice_max] entonces
Indice_maxindice
Fin si
Posmayorindice_max
Fin desde i
Fin
Inicio {programa principal}
Desde j límite hasta 2 hacer
Mayor Posmayor(j, tabla)
Aux Tabla [mayor]
Tabla [mayor] Tabla[j]
Tabla[j] Aux
Fin desde j
Fin
Método se Inserción
El método se basa en considerar una parte de la lista ya ordenando y situar
cada uno de los elementos restantes insertándolo en el lugar que le
corresponde por su valor
Algoritmo
Procedimiento desplazar (tabla, aux, k, nuevopos)
Inicio
Encontrado false
Mientras (k > 1) y (no encontrado) hacer
Si tabla [k-1] >aux entonces
Tabla [k] tabla [k - 1]
K k – 1
Sino
Encontrado true
Fin si
Nuevapos k
Fin mientras
Fin
Inicio {programa principal}
Desde K 2 hasta N hacer
Aux tabla[k]
Desplazar (tabla, k, aux, nuevapos)
Tabla [nuevapos] aux
Fin desde k
Fin
Método de Shell
Este método es una mejora del método de inserción directa que se utiliza
cuando el número de elementos a ordenar es grande se suele denominar
también ordenación por disminución de incrementos.
Pasos
Ejercicios
1. Ordenar los siguientes datos por el método de la burbuja, desarrolle
la prueba de escritorio
34 5 45 6 1 6 23 90 4 10
30 50 4 3 10 2 20 9 14 15
3. Ordenar por los métodos Shell y selección directa, desarrolle la
prueba de escritorio
12 0 54 30 100 21 2 9 1 5
12 0 54 30 100 21 2 8 11 15
11 10 54 30 101 20 2 9 1 5
34 11 15 6 1 16 23 90 4 10
30 5 14 13 10 12 20 9 14 15
Fila 1
Fila 2
Fila 3
Fila 4
Fila 5
Columna 1 Columna 5
Columna 2 Columna 4
Columna 3
Asignación en una arreglo de dos dimensiones
A (1,2) 10 se asigna el valor 10 en la posición i = 1 y j = 2 de arreglo
bidimensional A
A (5,6) 20 se asigna el valor 20 a la posición i = 5 y j = 6 del arreglo
bidimensional A
Lectura y escritura de datos
La lectura y escritura de un arreglo u operaciones de entrada y salida
normalmente se realizan con estructuras repetitivas.
Final = arreglo [1.. 20; 1..10] de real
// Lectura
Desde i 1 hasta 20 hacer
Desde j 1 hasta 10 hacer
Leer final [i, j]
Fin desde j
Fin desde i
// Escritura
Desde i 1 hasta 20 hacer
Desde j 1 hasta 10 hacer
Escribir final [i, j]
Fin desde j
Fin desde i
Ejemplo 1
Ejemplo 2
Ejercicios
ai
max max v(ai , j ) (1 ) min v(ai , j )
j j Para el optimista
ai j j
min min v(ai , j ) (1 ) max v(ai , j ) Para el pesimista
Grados
Fuente Suma de Cuadrados de Cuadrados medios F
Libertad
c 1 CMfactor
SCfactor
c 1 CMfactor
x
2
Factor C 2
CMerror
SCfactor i
ki n (Total de datos)
nc CMerror
ScError
C 2 nc
Error SCerror x 2 i
ki
m n
Ae
i 1 j 1
aij2
m n
aij
2
A2
i 1 j 1
36. Elaborar un algoritmo para desarrollar la norma columna suma
n
A max aij
1 j n
i 1
37. Elaborar un algoritmo para desarrollar la norma renglón suma
n
A max aij
1i n
j 1
Donde
t
µmax=es el mayor eigenvalor A A
a. Ecdscds
Apilamiento
Inicio
Leer X
Si tope ≥ N entonces
Escribir “Pila llena”
Sino
topetope+1
pila(tope) X
fin_si
Fin
Desapilamiento
Inicio
Si tope=0 entonces
Escribir “Pila vacía”
Sino
Elementopila(tope)
topetope-1
fin_si
Fin
b. Colas
Las colas es la otra estructura lineal que también utiliza los arreglos o listas
enlazadas, en ingles se le conoce como FIFO, es decir primero en entrar
primero en salir del arreglo o lista enlazada
Donde el ingreso es por la cima y la salida o borrado es por el otro extremo o
al inicio de la cola, tal como se muestra en la figura.
Las operaciones con la cola son las siguientes
Creación o limpieza: Inicializa cola al estado vacío.
Pila vacía: Determina si la cola está vacía.
Pila llena: Determina si la cola está llena.
Apilamiento o ingreso (METER): Inserta un nuevo elemento a la cola
(en la cima).
Desapilamiento o borrado (SACAR): Elimina el elemento en la cima de
la cola.
c. sw
40. Estructura no lineal
a. Arboles
b. Grafos
Escriba un programa que lea un conjunto de enteros y determine, para cada uno de
ellos, si es primo o no. Pruebe su programa con los cuatro enteros 7, 17, 35, 96
Represente la siguiente expresión algebraica en árbol binario Escriba los recorridos
preorden, inorden y postorden
b
( p )3
b
*d k
c n
Elabore el algoritmo que elimine un nodo que tiene 2 hijos de un árbol binario
Un sistema operativo particular almacena los trabajos en unas colas de espera para
ejecutarlo de acuerdo con el siguiente esquema. Los usuarios que tengan prioridades
relativas basadas en su número de identificación. 1era prioridad: Ejecutivos ID: 0-99,
2da: Jefes ID: 100-199, 3era: Empleados ID: 200-299; operarios ID 300-399. Dentro
de cada grupo de prioridad los trabajos se ejecutan en el orden en que llegan al
sistema. Si hay un trabajo de prioridad más alta, ejecutarlo antes que otro trabajo de
prioridad más baja. Trabajo de prioridad más baja se ejecutara solo cuando no haya
trabajos de prioridad más alta en espera.
Escribir el algoritmo añadir trabajo que reciba el número de identificación del
usuario y un código del trabajo a ejecutar y añada el código a la cola adecuada para
el nivel de prioridad de dicho usuario.
Escribir el algoritmo obtenersiguientetrabajo, que devuelve el código del trabajo que
este en la cola de mayor prioridad para ejecución (debe quitar el código de la cola).
Suponga que lista es una lista enlazada almacenada en memoria y que contiene sol
valores numéricos. Escribir un algoritmo que determine:
Una familia consta de cuatro hijos de 9, 8, 7 y 6 años de edad. Los padres los regalan
una computadora y un juego donde el factor más importante es el de la edad de los
jugadores las normas del juego son:
─ Es necesario que la suma de las edades de los que quieran jugar sea mayor
que la suma de las edades de los que no quieran.
─ En el caso de que la suma de las edades de los que quieran jugar sea igual a la
suma de las edades de los que no quieran hacerlo se hará lo que desee el de
mayor edad.
Los datos de entrada son la decisión de cada hijo de querer jugar o no . la salida será
la determinación de si jugaran o no (se debe entender que el juego necesita cuatro
jugadores). Elabore un algoritmo
Elabore el algoritmo que calcule la suma de los números pares e impares de los
números primos que estén comprendidos entre 1 y 5000
Elabore un algoritmo que imprima todos los bytes cuya suma de bits sean igual a 7
Elaborar elalgoritmo que permita ingresar una cantidad de nuevo soles como un
entero positivo, se debe calcular e imprimir el mejor desglose de moneda, es decir el
mínimo número de unidades monetarias a entregar. Considere las siguientes
unidades monetarias: 1000, 500, 100, 50, 10, 5, 2, 1 (Solución con arreglos)
Elabore el algoritmo que determine el valor mínimo de los valores máximos de cada
fila de la matriz numérica A(i,j)
Dado el vector L(x), con n elementos, hallar la cantidad de números pares e impares,
así como la suma de pares e impares. Adicionalmente debe determinar el mayor y el
menor elemento del vector.
FUNCIONES:
A.
Funciones: print
B.
Expresiones regulares: \n
Funciones: print
C.
Funciones: print
D.
E.
SOLUCION:
EJERCICIO: 1A
#!/usr/bin/perl -w
# Example 4-1 Storing DNA in a variable, and printing it out
EJERCICIO 1B
#!/usr/bin/perl -w
# Example 4-2 Concatenating DNA
# Store two DNA fragments into two variables called $DNA1 and $DNA2
$DNA1 = 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC';
$DNA2 = 'ATAGTGCCGTGAGAGTGATGTAGTA';
# Concatenate the DNA fragments into a third variable and print them
# Using "string interpolation"
$DNA3 = "$DNA1$DNA2";
print "Here is the concatenation of the first two fragments (version 1):\n\n";
print "$DNA3\n\n";
print "Here is the concatenation of the first two fragments (version 2):\n\n";
print "$DNA3\n\n";
exit;
EJERCICIO 1C:
#!/usr/bin/perl -w
# Example 4-3 Transcribing DNA into RNA
# The DNA
$DNA = 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC';
print "$DNA\n\n";
$RNA =~ s/T/U/g;
print "$RNA\n";
EJERCICIO 1D:
#!/usr/bin/perl -w
# Example 4-4 Calculating the reverse complement of a strand of DNA
# The DNA
$DNA = 'ACGGGAGGACGGGAAAATTACTACGGCATTAGC';
print "$DNA\n\n";
#
# Next substitute all bases by their complements,
# A->T, T->A, G->C, C->G
#
$revcom =~ s/A/T/g;
$revcom =~ s/T/A/g;
$revcom =~ s/G/C/g;
$revcom =~ s/C/G/g;
print "$revcom\n";
#
# Oh-oh, that didn't work right!
# Our reverse complement should have all the bases in it, since the
# original DNA had all the bases-but ours only has A and G!
#
# Do you see why?
#
# The problem is that the first two substitute commands above change
# all the A's to T's (so there are no A's) and then all the
# T's to A's (so all the original A's and T's are all now A's).
# Same thing happens to the G's and C's all turning into G's.
#
print "\nThat was a bad algorithm, and the reverse complement was wrong!\n";
print "Try again ... \n\n";
# Make a new copy of the DNA (see why we saved the original?)
$revcom = reverse $DNA;
exit;
Aquí se muestra el nombre de algunas algas con alto contenido de lípidos con que se puede
pretender hacer aceite, y sus probables rendimientos:
Microalga...............................Oilcontent (% drywt)
Botryococcusbraunii.............................25 - 75
Chlorellasp.........................................28 - 32
Crypthecodiniumcohnii.........................20
Cylindrothecasp..................................16 - 37
Dunaliellaprimolecta............................23
Isochrysissp........................................25 - 33
Monallanthus salina..............................>20
Nannochlorissp....................................20 - 35
Nannochloropsissp................................31 - 68
Neochlorisoleoabundans........................35 - 54
Nitzschiasp...........................................45 - 47
Phaeodactylumtricornatum.....................20 - 30
Schizochytriumsp.................................. 50 - 77
Tetraselmissueica..................................15 – 35