lunes, 21 de mayo de 2012

Ya estamos aqui otra vez y con todo aprobado. Las caras ya estan acabadas y hasta qui hemos llegado. Hoy hemos buscado canciones para los videos y se las hemos mandado a Ricardo. Aqui finaliza la asignatura de informatica. Ha sido un año en el que hemos hecho muchas cosas y muy variadas. No hay mas que darse una vuelta por el blog y veremos que hemos tratado temas relacionados con el retoque de fotos, la grabacion,... Infinidad de cosas siempre respaldadas por nuestro profesor, el cual ha mostrado interes por nosotros y nos ha ayudado en todo lo que le hemos pedido. Hoy es la ultima entrada de este blog y, posiblemente no vuelva a entrar en mucho tiempo, por eso he de decir que han sido dos grandes años, pero sobretodo este ultimo, donde mejor me lo he pasado. Este grupito hemos hecho mucha piña y en todas las clases reinaban las bromas, siempre desde el respeto e intentando no hacer mal a nadie. Sera dificil olvidar todas las risas y las diferentes personas con las que he estado trabajando. Por eso esta ultima entrada tenia que ser especial. Bueno, me despido de todos y a seguir que aun queda mucho por hacer.
Un dia nos queda. Llevamos dias buscando las caras de la gente. Tenemos los creditos del video nada mas y uno de los tres powerpoints que teniamos que hacer. Se nos acercan los examenes y la gente esta atacada ya. Espero tener suerte y poder venir la semana que viene a informatica, porque eso querria decir que lo he aprobado todo.
Todo puede ir peor de lo que uno se cree. Se nos ha borrado el video que ya casi estaba hecho con todas las fotos, nos acercamos a la semana de examenes finales y encima ahora nos toca buscar las caras buenas y malas de toda la gente que se gradua. os queda tres dias excasos y mirad como estamos. Nos tocara venir despues de los examenes a acabar los trabajos.
Bueno nos ha surgido un pequeño problemilla, y es que no contabamos con el filtro de Ricardo. Todas las fotos que sean de fuera del colegio no estan autorizadas a salir y las de salidas de fiesta por nuestra cuenta tampoco, asi que podeis imaginaros cuales son todas las fotos que estan etiquetadas ¿no? jajajjajajaja. Aqui seguimos los tres componentes de mi grupo eligiendo y descartando fotos para el video. El proximo dia ya empezamos el video con las fotos que tengamos puesto que no podemos perder mas dias buscando fotos.
Entramos en la recta final del curso y, ahora si que si, empezamos con los videos de la graduacion Nos hemos dividido en varios grupos para poder agilizar un poco la faena, ya que nos ha pillado el toro. Mi grupo, cuyos integrantes son Sara, Gregorio y yo, nos ha tocado buscar fotos de los diferentes actos celebrados en el colegio a lo largo de estos dos años. Las imagtenes las estamos sacando con ayuda de Ricardo, que no ha enviado bastantes fotos y con ayuda de una cuenta de tuenti que hemos creado, donde toda la gente puede etiquetar las fotos que le parezcan apropiadas.
Por fin hemos acabado la etapa de Pascal. Ahora estamos ahi ahi a ver si convencemos a Ricardo para empezar con los videos de la graduacion, aunque Ricardo es firme con el calendario y, como no le han comunicado nada desde direccion, vamos a ver unas cuantas cosillas del Derive. Han sido escasas las clases que hemos trabajado con este programa, pero nos ha servido para aprender a hacer funciones con el ordenador, derivar, integrar, hacer limites,... Es una pena que haya perdido el trabajo que correspondia a este apartado porque en el estaba todo lo realizado en esas clases y habia unas cuantas imagenes de lo que habiamos hecho pero bueno, ahora ya no puedo hacer nada. DEcir que ha sido muy interesante el aprender a utilizar este programa porque, quien sabe, igual para el futuro le sacaremos mucho partido y si no pues eso que nos llevamos aprendido.
Para que veais que no ha resultado nada facil Pascal, aqui os voy a dejar los algoritmos escritos de todos los programas que hemos realizado para que os animeis a probralos en casa.

EL PRIMER EJERCICIO CONSISTIA EN ESCRIBIR TU NOMBRE Y EL ORDENADOR TE DABA LA BIENVENIDA Y TE HACIA UNA PREGUNTA. EL PROGRAMA SE LLAMABA HOLA2:


program Saludo2;
uses crt;
var
c:char;
nom:ansistring;
begin
clrscr;
writeln('Hola,¨como te llamas?');
readln(nom);
writeln('Buenos dias',nom,'¨Eres del VCF? (s/n)');
readln(c);
if c='s' then
writeln('Fenomenal')
else if c='n'
then
writeln('Muy mal');
readkey;
end.
















EL SIGUIENTE EJERCICO QUE HICIMOS TRATABA SOBRE UN PROBLEMA DE FISICA RELACIONADO CON EL TEMA DE OPTICA. EL NOMBRE DEL PROGRAMA ES OPTICA:

program Optica;
uses crt;
var
So:real;
f:real;
Si:real;
Al:real;
c:real;
begin
clrscr;
writeln('Introduce la distancia objeto(So>0)');
readln(So);
writeln('Introduce la distancia focal(f>0)');
readln(f);
c:=(1/f)-(1/So);

if So=f
then
writeln('No se forma imagen')
else
begin

Si:=1/c;
writeln('La distancia imagen es igual a:',Si:0:2);
Al:=-Si/So;
if Si>0
then
writeln('Imagen real')
else
writeln('Imagen virtual');

writeln('La altura lateral resultante:',Al:0:2);
if Al>0
then
writeln('Derecha')
else
writeln('Invertida');

if abs(Al)>1
then
writeln('Aumentada')
else
begin
if abs(Al)=1
then
writeln('Natural')
else
writeln('Reducida');
end;
end;
Readkey;
End.


A CONTINUACION, EL SIGUIENTE PROGRAMA CONSISTIA EN INSERTAR UN NUMERO Y EL NUMERO QUE TU INSERTASES TENIA QUE COINCIDIR CON UN NUMERO QUE EL ORDENADOR HABIA PENSADO. EL NOMBRE DEL PROGRAMA ES ADIVINAR:

program Adivinar;
uses crt;
var
nom:ansistring;
num:integer;
num1:integer;
begin
clrscr;
writeln('Hola,¨c¢mo te llamas?');
readln(nom);
writeln('Hola',nom,'Adivina un numero del 1 al 10');
readln(num);
randomize;
num1:=random(9)+1;
if num<0
then
writeln('No has hecho caso a las indicaciones')
else
begin
if(num)>10
then
writeln('No has hecho caso a las indicaciones')
else
if (num)=(num1)
then
writeln('Muy bien. Has acertado el numero')
else
writeln('Lo siento. Tu numero no concuerda con el del ordenador');

end;
readkey;
end.


EN EL PROGRAMA SIGUIENTE EMPEZAMOS CON LOS BUCLES. ESTA VEZ TENIAMOS QUE INSERTAR UN NUMERO Y EL PROGRAMA TENIA QUE HACER LA MULTIPLICACION DE ESE NUMERO. USAMOS EL ‘FOR’, EL ‘WHILE’ Y EL ‘REPEAT’. EL NOMBRE DEL PROGRAMA ES TABLA DE MULTIPLICAR:

· FOR:
program Tabla;
uses crt;
var
z:integer;
num:integer;
begin
clrscr;
writeln('Bienvenido al programa de la tabla de multipicar');
writeln('Escribe un numero del 1 al 10');
readln(num);
if num<1
then
writeln('No has seguido las indicaciones')
else
if num>10
then
writeln('No has seguido las indicaciones')
else
for z:=1 to 10 do
begin
writeln(num*z);
end;
readkey;
end.


·REPEAT:
program Tabla;
uses crt;
var
z:integer;
num:integer;
begin
clrscr;
writeln('Introduce un numero del 1 al 10');
readln(num);
if num<0
then
writeln('No has seguido las indicaciones')
else
if num>10
then
writeln('No has seguido las indicaciones')
else
z:=1;
repeat
writeln(num*z);
z:=z+1;
until z>10;
readkey;
end.


·WHILE:
program Tabla;
uses crt;
var
z:integer;
num:integer;
begin
clrscr;
writeln('Escribe un numero del 1 al 10');
readln(num);
if num<0
then
writeln('No has seguido las indicaciones')
else
if num>10
then
writeln('No has seguido las indicaciones')
else
z:=1;
while z<=10 do
begin
writeln(num*z);
z:=z+1;
end;
readkey;
end.


EL PROGRAMA QUE VIENE A CONTINUACION NO SE PORQUE MOTIVO LO TENGO INACABADO. TRATABA SOBRE VECTORES Y CONSISITIA EN INTRODUCIR UN VECTOR DE CINCO ELEMENTOS Y CALCULAR LA SUMA TOTAL Y LA MEDIA DE LOS ELEMENTOS DEL VECTOR Y, EN LA SEGUNDA PARTE, INTRODUCIR DOS VECTORES DE TRES ELEMENTOS Y CALCULAR EL VECTOR SUMA, EL PRODUCTO ESCALAR, LOS MODULOS Y EL ANGULO QUE FORMAN. EL NOMBRE DEL PROGRAMA ES VECTORES:

program vectores;
uses crt;
var
opcion:real;
s,v1,v2,vT,pe,mv1,mv2,x,a:real;
v:array [...] of real;
opc:char;
i:real;

begin
clrscr;
repeat
writeln('Es ahora de elegir entre una de estas dos opciones propuestas 1/2');
if opc:1
then
begin
for i:1 to 5 do
begin
writeln('Introduce las componentes del vector');
readln(v[i]);
s:=v[1]+v[2]+v[3]+v[4]+v[5];
writeln('Has introducido el siguiente vector');
writeln('(',v[1]:0:2,',',v[2]:0:2,',',v[3]:0:2,',',v[4]:0:2,',',v[5]:0:2,')');
s:=0
for i:=1 to 5 do
s:=s+v[i];
p:=s/5;
end
else
begin
if opc:2
then
begin
for i:=1 to 3 do
begin
writeln('Introduce el vector 1');
readln(v1[i]);
end;
for 1 to 3 do
begin
writeln('Introduce el vector 2');
readln(v2[i]);
end;
writeln('El vector 1 introducido es');
writeln('(',v1[1]:0:2,',',v1[2],',',v1[3],')');
writeln('El vector 2 introducido es');
writeln('(',v2[1]:0:2,',',v2[2]:0:2,',',v2[3]:0:2,')');
for i:=1 to 3 do
writeln('El producto escalar de estos dos vectores es:');
pe:=+v1[i]*v2[i]
writeln('El modulo del vector 1 es:');
mv1:=sqrt(+sqr(v1[i]))
writeln('El modulo del vector 2 es:');
mv2:=sqrt(+sqr(v2[i]))
x:=pe/(mv1*mv2)
writeln('El angulo que forman el vector 1 y el vector 2 es:');
a:=arctan(sqrt(1-sqr(f))/f);
end;
end;


Y POR ULTIMO HICIMOS UN RETOQUE AL EJECICIO DE ADIVINAR, EXPLICADO UN POCO MAS ARRIBA, EN EL CUAL SOLO TENIAMOS UN NUMERO MAXIMO DE INTENTOS QUE HAY QUE FIJAR CON ANTERIORIDAD. EL NOMBRE DEL PROGRAMA ES ADIVINAR2:

program adivinar2;
uses crt;
var
int,i,num,a:integer;
nom:ansistring;
c:char;

Begin
clrscr;
write
('Escribe tu nombre: ');

readln (nom);
writeln('Bienvenido ',nom);
repeat
clrscr;
writeln
('A ver si adivinas en que numero del 1 al 10 estoy pensando');

repeat
write ('cuantos intentos necesitas (maximo 4): ');
readln (int);
if (int<1) or (int>4) then
writeln('he dicho maximo 4 intentos :)');
until (int>0) and (int<5);
i:=int;
randomize;
num:=random(9)+1;
repeat
write ('introduce un numero entero entre 1 y 10: ');
readln (a);
int:=int-1;
if a=num then
begin
writeln ('Enhorabuena el numero es ', a, ' y lo has conseguido en tu ', i-int, 'º intento.');
int:=0;
end
else
begin
if (a>0) and (a<11) then
writeln ('Has fallado, te quedan ', int,' intentos')
else
begin
writeln ('Error en el dominio de los datos de entrada, [1,10]');
writeln ('Te quedan ', int,' intentos');
end;
end;

until int=0;
if a<> num then
begin
writeln ('No lo conseguistes en ', i, ' intentos');
writeln ('La solución era: ', num);
end;
write ('Quieres volver a intentarlo (s/n)? ');
c:=readkey;
until c in ['n','N'];
End.

Antes digo lo del examen y ya lo tenemos hecho. Ha sido un examen que tenia bastante dificultad. La suerte es que todos partimos del 6 en ese examen entonces es imposible suspenderlo. Ricardo hace este examen para ver que nivel llevamos cada uno del programa. El examen ha consistido en:

1. SumaPositivos:


El programa consiste en sumar números enteros positivos hasta que pongas 0 (cero). Si le introduces algún número negativo que te recuerde las condiciones pero que no se pare el programa (aunque al no ser positivo, tampoco lo sume). Y al final te de el valor de la suma.


2. Factorial:


El programa consiste en calcular el factorial de un numero entero.

Nota: Siendo el factorial: n! = n·(n-1)·(n-2)·····3·2·1


Los siguientes dias de clase estuvimos implementando los programas con apuntes y todo tipo de ayuda para ver en que habiamos fallado. Olvide decir que el examen fue en papel y no teniamos ayuda de ningun tipo, por eso resulto dificil el examen. Una vez acabamos de implementar los dos programas y hacerlos funcionar dimos por finalizado Pascal.
Se acabó el darnos las cosas hechas. Ya hemos pasado a bucles y la verdad es que se ha complicado bastante esto. Encima Ricardo no cuelga los algoritmos y nos toca buscarnos la vida, primero para hacer el algoritmo y segundo para implementar el programa. La amenaza de un examen de Pascal se hace presente en el ambiente. A continuacion voy a poner los tipos de bucles que se pueden hacer en Pascal:

While





While Condicion do

Sentencia


a:=1;

while a<=10 do

begin

writeln (a);

a:=a+1;

end;



Repeat




Repeat Sentencia

until Condicion



a:=1;

repeat

writeln(a);

a:=a+1;

until a>10;

For





For i:= Valor Inicial to Valor Final do

Sentencia




For a:=1 to 10 do

Begin

Writeln(a);

End;


Aunque el algoritmo real del for y del while son casi identicos a la hora de la implementacion del programa, la asignacion inicial, la condicion (sólo es en el while pues en el for es unicamente un “conteo”) y la asignacion incremental (en el for va ya incluida en la instruccion en si) se hacen de forma diferente

Seguimos con mas algoritmos y mas programas para implementar. Nos queda poco para empezar bucles. Esta vez el trabajo consiste en un ejercicio de fisica perteneciente al bloque de optica. En el tenemos que averiguar una serie de incognitas para posteriormente decir de que tipo de objeto optico estamos hablando y, con las incognitas resueltas anteriormente, dependiendo de sus resultados y de los datos insertados, saber las caracteristicas de este objeto. Como siempre, os dejo el esquema del algoritmo para que os hagais una idea de lo que teniamos que llegar a realizar.




Y ya tenemos otro programa encargado por Ricardo. Esta vez lo que tenemos que hacer es introducir un numero. Lo complejo de este programa es que el numero que introduzcas tiene que coincidir con uno que el ordenador ha pensado anteriormente a que tu hayas el numero. Este programa ha sido de gran complicacion, sobretodo por los 'IF' que ha habido que poner para que si lo adivinas te diese la enhorabuena y si no lo adivinabas te dijese que no habias acertado. En este programa hay dos algoritmos, ya que se podia hacer de dos maneras distintas y las dos estan igual de bien hechas.
Continuamos con Pascal. Una vez implementado el primer ejercicio nos adentramos en seguir haciendo diferentes tipos de ejercicios. Este consistia en meter unos datos numericos y el programa te calculaba la base, la altura y la superficie de un rectangulo.









Estos eran los mas faciles, asi que una vez implementados dos programas de Pascal y habiendo cogido el truco Ricardo nos mando algo un poco mas complejo. El siguiente consistia en hacer una pregunta y dependiendo de la respuesta, esta salia en un color u otro. Aqui dejo el algoritmo del programa que posteriormente implementamos.