Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация
 
 
БелкО
Форумчанин
6 / 6 / 1
Регистрация: 03.09.2009
Сообщений: 69
03.09.2009, 15:30     Оператор выбора,цикла...беда=(
  #1
Первые занятия в техникуме и уже тону - помогите кто чем может Задачки задали, они наверно легкие, но бьюсь 3 день
1.Вводим Х и n и дожно выводить X в степени n, там что то с циклом делать нужно, но для меня это так и осталось загадкой
2.Вводим год выводит - век (типа 2000-20,2001-21), там все повязано с mod и div вроде...не знаю
3.В зависимости от К(0;99) вывести фразу "мне К лет(год, годов) - тут сказали case использовать
4. Рассчитать плату за интернет из рассчета что абооненская плата 100р, трафик 25мб и за каждый мб привышения трафика берут 3р

P.S.Заранее благодарю Прошу прощения если пишу не в том разделе, я у Вас впервые
AdAgent
Объявления
03.09.2009, 15:30
schdub
Форумчанин
2497 / 874 / 58
Регистрация: 19.01.2009
Сообщений: 2,101
03.09.2009, 15:53
  #2
№1 возведение в степень очень похожа на вашу, только организрвать ввод данных
БелкО
Форумчанин
6 / 6 / 1
Регистрация: 03.09.2009
Сообщений: 69
03.09.2009, 16:02  [ТС]
  #3
Цитата Сообщение от polivets Посмотреть сообщение
№1 возведение в степень очень похожа на вашу, только организрвать ввод данных
Похожа, но мне всё равно не понятно
schdub
Форумчанин
2497 / 874 / 58
Регистрация: 19.01.2009
Сообщений: 2,101
03.09.2009, 16:06
  #4
#3
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses crt;
 
var k : Integer;
 
begin
  ClrScr;
 
  Write('Сколько лет? ');
  ReadLn(k);
 
  if (k>99) or (k<0) then
    WriteLn('Вы ввели неверный возраст. Допустимые занчения [0..99]!')
  else
  begin
    Write('Мне ', k,' ');
    case k mod 10 of
    1: if k div 10=1 then write('лет') else write('год');
    2,3,4: if k div 10=1 then write('лет') else write('годa');
    else write('лет');
    end;
    WriteLn('.');
  end;
  ReadLn;
end.
schdub
Форумчанин
2497 / 874 / 58
Регистрация: 19.01.2009
Сообщений: 2,101
03.09.2009, 16:12
  #5
#1
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
 
var x, n : integer;
 
function Pow(a,b:integer):longint;
var i,s:integer;
begin
  s:=1;
  for i:=1 to b do
    s:=s*a;
  Pow:=s;
end;
 
begin
  clrscr;
  write('x = ');
  ReadLn(x);
  write('n = ');
  ReadLn(n);
  write('x^n = ', pow(x, n));  
  readln
end.
Puporev
Модератор
42581 / 31095 / 1950
Регистрация: 18.05.2008
Сообщений: 66,381
03.09.2009, 16:12
  #6
Первая задача подробно. Рассмотрим только случай когда показатель целое неотрицательное число, ибо другие случаи в цикле не решаются.

Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
uses crt;{модуль для очистки экрана(в данном примере-необязательно)}
var x,y:real;{основание степени и результат}
    n,i:1..maxint;{показатель степени и счетчик цикла}
begin
clrscr;{очищаем экран, если уберем модудь, то убрать и это}
write('Введите основание степени, любое сисло x=');
readln(x);
write('Введите показатель степени целое положительное число n=');
repeat
readln(n);
until n>0;{проверяем правильность ввода}
y:=1;{сначала результат=1, нулевая степень}
for i:=1 to n do{какой показатель степени, столько раз повторяем цикл}
y:=y*x;{умножаем основание само на себя}
write(x:0:2,'^',n,'=',y:0:2);{выводим результат}
readln
end.
Думаю что на первых занятиях вряд ли они прошли уже и функции.
БелкО
Форумчанин
6 / 6 / 1
Регистрация: 03.09.2009
Сообщений: 69
03.09.2009, 16:16  [ТС]
  #7
Цитата Сообщение от polivets Посмотреть сообщение
#3
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses crt;
 
var k : Integer;
 
begin
  ClrScr;
 
  Write('Сколько лет? ');
  ReadLn(k);
 
  if (k>99) or (k<0) then
    WriteLn('Вы ввели неверный возраст. Допустимые занчения [0..99]!')
  else
  begin
    Write('Мне ', k,' ');
    case k mod 10 of
    1: if k div 10=1 then write('лет') else write('год');
    2,3,4: if k div 10=1 then write('лет') else write('годa');
    else write('лет');
    end;
    WriteLn('.');
  end;
  ReadLn;
end.
пасиба огромное тока вместо русских букв выводит закарючки какие то =(
Puporev
Модератор
42581 / 31095 / 1950
Регистрация: 18.05.2008
Сообщений: 66,381
03.09.2009, 16:19
  #8
Это у Вас проблемы с отображением русских букв. Напишите пока русский текст транслитом, потом попробуйте разобраться что к чему. Кстати какой у Вас компилятор? Можете скачать Турбо Паскаль по ссылке вверху этого раздела, там русский шрифт отображается нормально.
БелкО
Форумчанин
6 / 6 / 1
Регистрация: 03.09.2009
Сообщений: 69
03.09.2009, 16:29  [ТС]
  #9
Цитата Сообщение от Puporev Посмотреть сообщение
Это у Вас проблемы с отображением русских букв. Напишите пока русский текст транслитом, потом попробуйте разобраться что к чему. Кстати какой у Вас компилятор? Можете скачать Турбо Паскаль по ссылке вверху этого раздела, там русский шрифт отображается нормально.
хорошо,спасибо
Puporev
Модератор
42581 / 31095 / 1950
Регистрация: 18.05.2008
Сообщений: 66,381
03.09.2009, 16:29
  #10
№2.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
uses crt;
var g,v:word;
begin
clrscr;
repeat
write('Vvedite god ot 1 do 2009 g=');{можете свой интервал задать}
readln(g);
until(g>=1)and(g<=2009);
if g mod 100=0 then v:=g div 100{если последний год века, на 00 оканчивается}
else v:=g div 100+1;{остальные года}
write('Vek=',v);
readln
end.
schdub
Форумчанин
2497 / 874 / 58
Регистрация: 19.01.2009
Сообщений: 2,101
03.09.2009, 16:30
  #11
#4
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses crt;
var t    : integer;
    bill : real;
 
const abon_plata = 100.0; {абон плата}
      abon_limit = 25;    {кол-во МБ оплаченых абон плтой}
      abon_high  = 3.0;   {стоимость МБ сверх оплаченного лимита}
 
begin
  clrscr;
  write('трафик (в Мб) = ');
  readln(t);
 
  {абон плата}
  bill := abon_plata;
  if t > abon_limit then t := t - abon_limit else t := 0;
 
  if t>0 then
  begin
    { есть превышение}
    bill := bill + (t * abon_high);
  end;
 
  writeln('Нужно заплатить ',bill:2:2,' руб.');
  readln;
end.
Puporev
Модератор
42581 / 31095 / 1950
Регистрация: 18.05.2008
Сообщений: 66,381
03.09.2009, 16:33
  #12
Вот как все быстро, а Вы боялись! Кто рано встает, тому Бог дает. Ближе к концу семестра повезет только самым счастливчикам.
БелкО
Форумчанин
6 / 6 / 1
Регистрация: 03.09.2009
Сообщений: 69
03.09.2009, 16:40  [ТС]
  #13
Цитата Сообщение от Puporev Посмотреть сообщение
Вот как все быстро, а Вы боялись! Кто рано встает, тому Бог дает. Ближе к концу семестра повезет только самым счастливчикам.
я в шоке пасибо Вам осталось решить проблемы с задачами на измерение количества информации
schdub
Форумчанин
2497 / 874 / 58
Регистрация: 19.01.2009
Сообщений: 2,101
03.09.2009, 16:53
  #14

Не по теме:

Действительно, они просуществовали на нашем форуме нерешенными всего час (15:30 - 16:30). Но, Puporev может еще быстрее.



Цитата Сообщение от БелкО Посмотреть сообщение
осталось решить проблемы с задачами на измерение количества информации
Что за задачи???
БелкО
Форумчанин
6 / 6 / 1
Регистрация: 03.09.2009
Сообщений: 69
03.09.2009, 17:05  [ТС]
  #15
Цитата Сообщение от polivets Посмотреть сообщение

Не по теме:

Действительно, они просуществовали на нашем форуме нерешенными всего час (15:30 - 16:30). Но, Puporev может еще быстрее.




Что за задачи???
Чувствую у меня всё впереди, как бы Вам не надоесть
P.S. Задачи типа: "Информационное сообщение объемом 1.5кб=3072символов.Определить мощность алфавита"

Добавлено через 8 минут
"Составить модуль перекодировки русских символов консольных приложений в среде Delphi"
Можете перевести на русский что от меня хотят ?
yanyk1n
Форумчанин
4312 / 1443 / 25
Регистрация: 12.03.2009
Сообщений: 5,311
03.09.2009, 17:13
  #16
ну с объёмом могу уже решить:
1.5 кб = 1536 байт
3072 / 1536 =2 байта = 16 бит на символ
с помощью 16 бит можно закодировать 2^16 =65536символов

Добавлено через 2 минуты
а вот и процедура для модуля:
Код Delphi
1
2
3
4
5
6
7
8
9
10
11
12
function Rus(mes: string):string;
// В ANSI русские буквы кодируются числами от 192 до 255, 
// в ASCII - от 128 до 175 (А..Яа..п) и от 224 до 239 (р..я). 
var
i: integer; // номер обрабатываемого символа 
begin
 for i: =1 to length(mes) do case mes[i] of
 'A'..'п' :mes[i] := Chr(Ord(mes[i])-64);
 'р'..'я' :mes[i] := Chr(Ord(mes[i])-16); 
end;
rus := mes;
end;
Puporev
Модератор
42581 / 31095 / 1950
Регистрация: 18.05.2008
Сообщений: 66,381
03.09.2009, 17:13
  #17
[QUOTE]"Составить модуль перекодировки русских символов консольных приложений в среде Delphi"/QUOTE]
А что это с первого сентября и такие задачи уже задают, или вы не первый год программирование изучаете?
А Вы пишете программы в консоли Делфи? Если это так, то там действитедьно неправильно отображаются символы кириллицы.
БелкО
Форумчанин
6 / 6 / 1
Регистрация: 03.09.2009
Сообщений: 69
03.09.2009, 17:18  [ТС]
  #18
[QUOTE=Puporev;257093]
"Составить модуль перекодировки русских символов консольных приложений в среде Delphi"/QUOTE]
А что это с первого сентября и такие задачи уже задают, или вы не первый год программирование изучаете?
А Вы пишете программы в консоли Делфи? Если это так, то там действитедьно неправильно отображаются символы кириллицы.
это типа на будущее индивидуальное задание да, начали в Делфи

Добавлено через 2 минуты
Цитата Сообщение от k1ry4 Посмотреть сообщение
ну с объёмом могу уже решить:
1.5 кб = 1536 байт
3072 / 1536 =2 байта = 16 бит на символ
с помощью 16 бит можно закодировать 2^16 =65536символов

Добавлено через 2 минуты
пасиба а можно поподробней как к этому прийти? =) или ссылочку какую нить как считается, а то задач ещё много
Puporev
Модератор
42581 / 31095 / 1950
Регистрация: 18.05.2008
Сообщений: 66,381
03.09.2009, 17:18
  #19
[QUOTE]да, начали в Делфи /QUOTE] Вы в будущем указывайте что нужно в консоли Делфи, все таки кое какие отличия от классического Паскаля есть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2009, 17:21

Еще ссылки по теме:

Turbo Pascal оператор выбора

Turbo Pascal оператор выбора

Turbo Pascal Оператор выбора

Turbo Pascal Оператор выбора

БелкО
Форумчанин
6 / 6 / 1
Регистрация: 03.09.2009
Сообщений: 69
03.09.2009, 17:21  [ТС]     Оператор выбора,цикла...беда=(
  #20
да, начали в Делфи /QUOTE] Вы в будущем указывайте что нужно в консоли Делфи, все таки кое какие отличия от классического Паскаля есть.
хорошо =)
Yandex
Объявления
03.09.2009, 17:21
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему
Опции темы

Текущее время: 14:25. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.