Hola, necesito ayuda para hacer un programa con while y/o repeat que haga lo siguiente:
*
**
***
****
*****
y otro:
*
_*
__*
___*
____*
pero no lo puedo hacer escribiendo write(' * ');
Hola devil, pasé un rato por el foro para mirar, y como tengo tiempo te voy a tirar una mano.
Eso que te plantean es para que aprendas a usar las estructuras while y repeat, y la única forma de comprenderla es practicando. De hecho yo lo estoy haciendo mientras te ayudo 

Mirá, algo así.
 
var cont:integer;
    car:string;
cont:=0; // un contador para el while, para que termine alguna vez...
car:=''; //car limpio
     while cont<5 do //5, que van a ser las 5 líneas
      begin
      car:=car+'*'; //pascal puede sumar cosas del mismo tipo. num con num, car con car... por ejemplo.
      cont:=cont+1; //incremento contador, por eso antes lo puse en 0.
      writeln(car); //escribo car y listo
      end; //cierro el while.
 
Posiblemente te esté haciendo todo, pero es lo más simple para explicar,  

 , mi consejo es que lo leas, y trates de entender el código.
Saludos y suerte, después subí como lo hiciste