Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/55: Рейтинг темы: голосов - 55, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 28.06.2015
Сообщений: 6

Как решать задачи

28.06.2015, 11:55. Показов 11109. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Сразу сорян если тема тупая и всплывала 100500 раз. Читаю книгу "Песни о паскале", задание написать программу, которая задавала бы пользователю 15 рандомных примеров на умножение, и в конце выставлила оценку. И чет в голову совершенно ничего не лезет, т.е я знаю как написать ту или иную манипуляцию, но как собрать это все в кучу что бы получилась такая программа, без понятия. Приходит ли это с опытом, или возвращаться по главам назад и перечитывать? Еще раз сорян за тупость темы
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.06.2015, 11:55
Ответы с готовыми решениями:

Как быстро решать задачи?
Я иду на олимпиаду и проблема в том, что я очень долго думаю и пишу программы. А там даётся всего 3 часа. Как лучше думать, чтобы ускорить...

Не знаю как решать дальше
написал одну часть проги дальше не магу решить Program Vedomost; Uses crt; const n=5; var a:array of string; i,x,cod,k:integer; ...

Цикл с параметром....пожалуйста натолкните на мысль как решать...
написание прогги в паскале... задача звучит так S:= 1/3^2 + 1/5^2 + 1/7^2 +....+ 1/(2*n +1)^2 3^2 это тип 3 в квадратной степени... и...

7
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
28.06.2015, 12:46
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
27
28
29
30
31
const
  n=15;
var
  i,x,y,score:integer;
  z,otv:integer;
  oc:integer;
begin
  randomize;
  score:=0;
  for i:=1 to n do
    begin
      x:=random(10);
      y:=random(10);
      z:=x*y;
      write('Умножить ',x,' на ',y,' = ? ');
      readln(otv);
      if z=otv then
        inc(score);
    end;
  writeln('Правильных ответов: ',score);
  score:=n-score; 
  case score of
    0..3: oc:=5;
    4..6: oc:=4;
    7..8: oc:=3
  else
    oc:=2;
  end; {of case}
  writeln('Ваша оценка: ',oc);
  readln;
end.
0
Модератор
10423 / 5711 / 3402
Регистрация: 17.08.2012
Сообщений: 17,371
28.06.2015, 12:58
Перечитывать всегда полезно. Ну и, да, с первого раза не всегда получается. Вот программка по заданию, критерий оценки: за каждые 3 правильных ответа начисляется 1 балл.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var i, a, b, r, o: integer;
begin
  randomize;
  o := 0;
  for i := 1 to 15 do
    begin
      a := 2 + random(8);
      b := 2 + random(8);
      write(a, ' * ', b, ' = ');
      readln(r);
      if a * b = r then inc(o)
    end;
  writeln('Оценка: ', o div 3 + 1);
  readln
end.
0
0 / 0 / 0
Регистрация: 28.06.2015
Сообщений: 6
28.06.2015, 13:14  [ТС]
Не, ну сам код задачи там дальше есть, и всю логическую цепочку я понимаю. У меня проблемы если я заранее не знаю код, я без понятия как его логически построить, кроме мелких моментов которые я раньше писал
0
Модератор
10423 / 5711 / 3402
Регистрация: 17.08.2012
Сообщений: 17,371
28.06.2015, 13:26
nex1s, ??? не понимаю вопроса. Если подробно, то так, наверное:

- представляете, что Вы - главный в мире буквоед;
- составляете алгоритм, не допускающий никаких разночтений, в любой форме, к примеру, в виде блок-схемы, или словесного описания;
- записываете алгоритм с помощью операторов языка программирования.
0
0 / 0 / 0
Регистрация: 28.06.2015
Сообщений: 6
28.06.2015, 13:27  [ТС]
Вот еще одна задача, написать программу которая выдавала бы ответ дня недели в соответствии с введенным номером.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  s:string; n:integer;
begin
 
    repeat
     writeln('Введите день недели');     readln(n);
       case n of 
        1: s:='пн';
        2: s:='вт';
        3: s:='ср';
        4: s:='чт';
        5: s:='пт';
        6: s:='сб';
        7: s:='вс';
       else s:='Неправильный ввод';
       end;
      writeln(s)
     until false;
end.
Проблема в том что когда вводишь текст программа крашится. Я понимаю что это из-за readln(n) n:integer; Как сделать при вводе текста выдавало тоже сообщение "Неправильный ввод"? Может здесь проблема именно в "case of else end" ?
0
Модератор
10423 / 5711 / 3402
Регистрация: 17.08.2012
Сообщений: 17,371
28.06.2015, 13:42
nex1s, естественно, если вместо числа ввести строку, будет ошибка. Простейший способ: вводить строку, а затем переводить её в число, и смотреть, есть ли ошибка или нет. Ну, например, так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var s, p: string; n, error: integer;
begin
  repeat
    write('Введите день недели: ');
    readln(p);
    val(p, n, error);
    if error <> 0 then n := 0;
    case n of
      1: s:='Понедельник';
      2: s:='Вторник';
      3: s:='Среда';
      4: s:='Четверг';
      5: s:='Пятница';
      6: s:='Суббота';
      7: s:='Воскресение'
      else s:='Неправильный ввод'
    end;
    writeln(s)
   until false
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
29.06.2015, 09:43
... а можно проверки поручить библиотеке времени исполнения, раз уж она все равно сбойные ситуации распознавать обучена:
Pascal
1
2
3
4
5
6
7
8
9
10
11
const
  Days: array [1..7] of String[11] = (
    'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье');
var n: Integer;
begin
  repeat
    Write('Введите номер дня недели: ');
    {$I-}ReadLn(n);{$I+}
  until (IOResult=0) and (n in [1..7]);
  WriteLn(Days[n]);
end.
Добавлено через 19 часов 33 минуты
Ах да, выдать "неправильный ввод" хотелось, несложно поменять:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
const
  Days: array [1..7] of String[11] = (
    'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье');
var n: Integer;
begin
  repeat
    Write('Введите номер дня недели [1..7]: ');
    {$I-}ReadLn(n);{$I+}
    if (IOResult=0) and (n in [1..7]) then Break
    else WriteLn('*** Ошибка: неправильный ввод.');
  until False;
  WriteLn(Days[n]);
end.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.06.2015, 09:43
Помогаю со студенческими работами здесь

Ошибка в 68 строке кода. "Неправильный тип параметров подпрограммы". Как решать?
program laba5; const n = 10; type Matr = array of real; var m: matr;

Как решать сложное математическое уравнение?
Как решить вот такое вот уравнение подскажите пожалуйста. В математике я 0. c=\left(\frac{x}{\left(3+ax \right)^2}...

Как называется метод компьютерного моделирования, где не нужно решать дифференциальные уравнения?
Создал динамическую модель полета снаряда с учетом сопротивления возуха, не решая диф уравнения, на защите мне задали вопрос &quot;Какой...

Ученик начал решать задачи данного урока
Добрый день!;D Прошу, если кто знает как решить эти две задачи, помогите пожалуйста.:sorry: 1. Ученик начал решать задачи данного...

Как решать уравнения?
есть уравнение A(x)=A0+(i=n E i=1)*n*cos(x*n+k) подскажите как это можно решить


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru