Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Прошу помощи в решении задач (Pascal) (http://www.tehnari.ru/f41/t36205/)

Radist61 19.05.2010 19:37

Прошу помощи в решении задач (Pascal)
 
Здравствуйте уважаемые форумчане!! Если есть у кого нибудь свободное время или желание помочь студенту,будьте любезны помочь в решении 4-х задач и составлении для них блок схем на языке Паскаль.

1. Каждая бактерия делится на две в течение минуты. В начальный момент времени имеется одна бактерия. Написать программу для расчета кол-ва бактерий за введенное время??

2. Написать программу генерирования одномерного массива чисел(с помощью генератора случайных чисел). И чтобы программа так же выполняла след.действия:
1)опрелеляла сумму всех элементов массива;
2) изменяла знаки всех элементов массива на противоположные;

Уверен у многих вызовит смех,но мне не до смеха хотелось бы получить помощь,я занимаюсь ремонтом сотовых телефонов и далек от Паскаля. Так же буду навищать ваши разделы по ремонту и стараться оказать помощь

Vladimir_S 19.05.2010 21:22

Цитата:

Сообщение от Radist61 (Сообщение 336524)
Здравствуйте уважаемые форумчане!! Если есть у кого нибудь свободное время или желание помочь студенту,будьте любезны помочь в решении 4-х задач и составлении для них блок схем на языке Паскаль.

Да пожалуйста:
Цитата:

1. Каждая бактерия делится на две в течение минуты. В начальный момент времени имеется одна бактерия. Написать программу для расчета кол-ва бактерий за введенное время??
Код:

VAR
 n:Real;
BEGIN
 Write('Enter n (minutes) ');
 Readln(n);
 WriteLn(ROUND(Exp(n*Ln(2))));
 ReadLn;
END.

Цитата:

2. Написать программу генерирования одномерного массива чисел(с помощью генератора случайных чисел). И чтобы программа так же выполняла след.действия:
1)опрелеляла сумму всех элементов массива;
2) изменяла знаки всех элементов массива на противоположные;
Код:

CONST
 N=10;
VAR
 A:ARRAY[1..N] of INTEGER;
 SUM:LongInt;
 i:INTEGER;
BEGIN
 RANDOMIZE;
 SUM:=0;
 For i:=1 to N do
  begin
  A[i]:=RANDOM(1000)-500;
  SUM:=SUM+A[i];
  Write(A[i]:6);
  end;
 WriteLn;
 WriteLn('SUM= ',SUM);
 For i:=1 to N do
  begin
  A[i]:=-A[i];
  Write(A[i]:6);
  end;
 WriteLn;
 ReadLn;
END.

Цитата:

Уверен у многих вызовит смех,но мне не до смеха хотелось бы получить помощь,я занимаюсь ремонтом сотовых телефонов и далек от Паскаля. Так же буду навищать ваши разделы по ремонту и стараться оказать помощь
К сожалению, с блок-схемами помочь не могу. Не умею.

Павел 19.05.2010 21:25

блок схему помогу сделать, выложу в Word'е

Павел 19.05.2010 21:35

Вложений: 1
только на 1 задание, остальные сори, немогу :)
Вложение 13721

Radist61 19.05.2010 21:59

Ребята!!!!!!!!!! БОЛЬШОЕ СПАСИБО!!!!!!

Radist61 21.05.2010 10:21

Вот вчера дали еще две(последние):
1)Написать программу которая бы при вводе с клавиатуры значения "х" находила бы "у" по формулам:если "х" меньше или равен нулю то y=sin(x2) а если значение вводимого "х" больше нуля тогда y=sin2(x). Двойки в формулах это степени.

2)Задача про машины. С клавиатуры задается расстояние между двумя пунктмами "А" и "В". Из пункта "А" в пункт "В" выезжает легковой автомобиль со скоростью V1(Задается с клавиатуры). Через какое то время(тоже задается с клавиатуры) из пункта "А" в пункт "В" выезжает грузовой автомобиль со скоростью V2(вводится с клавиатуры) задача должна посчитать,через какое время грузовой автомобиль догогит легковой,и догонет ли вообще???

Radist61 21.05.2010 10:38

Цитата:

Сообщение от Radist61 (Сообщение 336524)
1. Каждая бактерия делится на две в течение минуты. В начальный момент времени имеется одна бактерия. Написать программу для расчета кол-ва бактерий за введенное время??

Вот в этой задачи я не совсем верно сказал что нужно найти=(((
Программа должна считать всю сумму бактерий(т.е. Если мы вводим время 5мин то программа должна считать 1+4+8+16+32 )и выводить на экран общую сумму,как это добавить??

Vladimir_S 21.05.2010 10:39

Цитата:

Сообщение от Radist61 (Сообщение 337147)
Вот вчера дали еще две(последние):
1)Написать программу которая бы при вводе с клавиатуры значения "х" находила бы "у" по формулам:если "х" меньше или равен нулю то y=sin(x2) а если значение вводимого "х" больше нуля тогда y=sin2(x). Двойки в формулах это степени.

Код:

VAR
 x:REAL;
BEGIN
 Write('x= ');
 ReadLn(x);
 Write('y= ');
 If x>0 then WriteLn(SQR(Sin(x))) else WriteLn(Sin(SQR(x)));
 ReadLn;
END.

Сейчас вторую сделаю.

Vladimir_S 21.05.2010 10:52

Цитата:

Сообщение от Radist61 (Сообщение 337150)
Вот в этой задачи я не совсем верно сказал что нужно найти=(((
Программа должна считать всю сумму бактерий(т.е. Если мы вводим время 5мин то программа должна считать 1+4+8+16+32 )и выводить на экран общую сумму,как это добавить??

Пожалуйста, только, честно говоря, я этого не понимаю. Ведь после деления бактерия-прародительница перестает существовать! Зачем же суммировать? И потом - за 5 минут должно быть 1+2+4+8+16+32, а у Вас почему-то 2 выпало... Ну ладно, как знаете:
Код:

VAR
 i:INTEGER;
 n,a:WORD;
 SUM:LongInt;
BEGIN
 Write('n= ');
 ReadLn(n);
 SUM:=1;
 a:=1;
 For i:=1 to n do
  begin
  a:=a*2;
  SUM:=SUM+a;
  end;
 WriteLn('SUM= ',SUM);
 ReadLn;
END.


Vladimir_S 21.05.2010 11:31

Цитата:

Сообщение от Radist61 (Сообщение 337147)
2)Задача про машины. С клавиатуры задается расстояние между двумя пунктмами "А" и "В". Из пункта "А" в пункт "В" выезжает легковой автомобиль со скоростью V1(Задается с клавиатуры). Через какое то время(тоже задается с клавиатуры) из пункта "А" в пункт "В" выезжает грузовой автомобиль со скоростью V2(вводится с клавиатуры) задача должна посчитать,через какое время грузовой автомобиль догогит легковой,и догонет ли вообще???

Код:

VAR
 S0,Sx,T0,Tx,V1,V2:REAL;
BEGIN
 Write('Distance between A and B (km) = ');
 ReadLn(S0);
 Write('The car velocity (km/h) = ');
 ReadLn(V1);
 Write('The lorry velocity (km/h) = ');
 ReadLn(V2);
 Write('The delay time of lorry start (hours) = ');
 ReadLn(T0);
 WriteLn;
 If Round(V1*10000)>=Round(V2*10000) then
  begin
  WriteLn('The automobiles will never meet, because the lorry');
  WriteLn('is slower then the car or has the same velocity');
  end else
  begin
  Tx:=V1*T0/(V2-V1);
  Sx:=Tx*V2;
  If Sx>S0 then
    begin
    WriteLn('The automobiles will not meet, because the car will reach');
    WriteLn('the B point before the lorry would catch it');
    end else
    begin
    WriteLn('The automobiles will meet in ',Tx:5:3,' hours');
    WriteLn('at a distanse of ',Sx:6:2,' kilometers from A point');
    end;
  end;
 ReadLn;
END.



Часовой пояс GMT +4, время: 23:34.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.