singlepost

Pascal прошу помоч << На главную или назад  

Тема::: – Оператор цикла

2)Составить программу запрашивающию пароль пользователя. В счучае правильности пароля вывести фразу "можно приступать к работе"

3) 1/(2*3*4)+2/(3*4*5)+3/(4*5*6)+..

правда такое не умею!!кто умеет помогите

42 ответов в теме “Pascal прошу помоч”

  1. 7
    Роман Викторович ответил:

    помогите решить лабу плз
    Тема: Обработка массивов в программе на TurboPascal 7.0
    Цель работы: Изучение возможностей обработки одномерных массивов

    1)N=18 Все элементы с нечетными номерами заменить их квадратами.
    2)Определить содержит ли массив элементы, равные максимальному элементу.
    3)Найти номер первого и последнего положительного элемента.

  2. 6
    Максим Толмачёв ответил:

    cпасибо)))

  3. 5
    Александр Дикарев ответил:

    Может быть, я лучше к третьей комментарии напишу?:-) А то проще уже некуда.

    uses crt; //Подключение модуля CRT. Нужен для функции readkey.

    var //Начало раздела описания переменных.

    total : real; //Переменная, в которой будет храниться сумма ряда – вещественное число.

    mul : longint; //В этой переменной будет храниться значение знаменателя каждого члена ряда.

    counter, sub_count : word; //счетчики внешнего и внутреннего циклов
    .

    begin

    total:=0; //Обнуление суммы. На всякий случай.

    for counter:=1 to 1500 do //Счетчик циклически меняется от 1 до 1500. Одновременно он является числителем каждого члена ряда.

    begin //Начало тела внешнего цикла.

    mul:=1; //Перед расчетом знаменателя заносим в него число 1. Если на эту переменную умножить несколько чисел подряд, то в ней будет произведение этих чисел.

    for sub_count:=counter+1 to counter+3 do //Внутренний цикл от значения числителя+1 до значения числителя+3. counter – это и есть числитель.

    mul:=mul*sub_count; //Тело внутреннего цикла, в котором и производится умножение.

    total:=total+(counter/mul); //Подсчет общей суммы – к сумме прибавляется числитель (counter), деленный на знаменатель (mul), который был подсчитан в предыдущих двух строках.

    writeln(total:8:5); //Это лишняя строка, она не повлияет на правильность программы:-) Её желательно удалить.

    end; //Конец внешнего цикла.

    writeln('total = ',total:12:5); //Вывод результата в виде десятичной дроби – 12 символов на все число, 5 символов после запятой.

    readkey;
    //Задержка программы до нажатия пользователем любой клавиши.

    end.

    Идея работы программы – посчитать сумму ряда.
    Так как ряд убывающий и сходящийся, то для достижения заданной точности достаточно 1500 членов ряда.
    Число 1500 подобрано экспериментально. Если взять, например, 10000 членов ряда, то за 10000 вычислений накопится ошибка округления. Да и 1500й член ряда уже достаточно мал, чтобы оказать какое-то влияние на результат вычислений.
    Если тут что-то непонятно, то напиши, что именно непонятно, уж попробую объяснить.

  4. 4
    Максим Толмачёв ответил:

    вторую сделал!
    а вот 3-ия у тебя мне не вся понятна! я до многого не дошел еще и препод не поймет! можно попроще слишком запутана)
    спс за сторание)))

  5. 3
    Александр Дикарев ответил:

    Прога 2 – ввод пароля

    uses crt;
    const
    real_password = 'bash1234';
    max_wrong_counter = 5;
    var
    password:string;
    wrong_counter:integer;
    begin
    wrong_counter := 0;
    repeat
    if wrong_counter = max_wrong_counter
    then
    begin
    writeln('5th password try os over.');
    writeln('You can''t continue working.');
    readkey;
    halt;
    end;
    password:='';
    writeln('input a password');
    readln(password);
    inc(wrong_counter);
    until password=real_password;
    writeln('You can work now');
    readkey;
    end.

  6. 2
    Александр Дикарев ответил:

    Прога 3 – вычисление суммы ряда.
    Её можно было и по-другому сделать – цикл с постусловием, проверяющий сходимость ряда с заданной фиксированной точностью. Но цикл с постусловием был в предыдущей задаче; в этой, наверное, надо было реализовать другой вид цикла или даже вложенные циклы.

    uses crt;
    var
    total : real;
    mul : longint;
    counter, sub_count : word;
    begin
    total:=0;
    for counter:=1 to 1500 do
    begin
    mul:=1;
    for sub_count:=counter+1 to counter+3 do
    mul:=mul*sub_count;
    total:=total+(counter/mul);
    writeln(total:8:5);
    end;
    writeln('total = ',total:12:5);
    readkey;
    end.

  7. 1
    Екатерина Томарова ответил:

    Ответ Роману Викровичу:
    1) один из вариантов решения
    for i:=1 to 18 do
    if i=(i mod 2=0) then a[i]:=a[i]*a[i];
    for i:=1 to 18 do
    write (a[i]:4);
    Должно работать, можно оформить в процедуре:)
    2)
    a[1]:=max;
    for i:=2 to n do
    if a[i]>max then max:=a[i];
    for i:=1 to n do
    if a[i]=max thenwriteln(a[i]);
    3)
    for i:=1 to n do {поиск первого положительного}
    if a[i]>0 then
    begin
    x:=i;
    break;
    end;
    for i:=n downto 1 do {поиск номера последнего положительного}
    if a[i]>0 then
    begin
    y:=i;
    break;
    end;
    writeln('Номер первого положительного ',x);
    writeln('Номер последнего положительного ',y);

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.